0

也许我在这里做错了什么,但是在使用 createBuilder() 时我无法加入多个表。这是一个示例查询。

$test = $this->modelsManager->createBuilder()
        ->from('TABLE1')
        ->leftJoin('TABLE2', 'TABLE1.id = TABLE2.table_one_id')
        ->leftJoin'TABLE3', 'TABLE3.id = TABLE2.table_three_id')
        ->where('TABLE1.id = :id:', array('id' => $id))
        ->groupBy(array('TABLE1.id'))
        ->getQuery()
        ->execute();

有错误表明框架可能没有正确生成 SQL 查询,但我很可能做错了什么。在附加的 LEFT 连接之前似乎没有添加空格。

“on 子句”中的未知列“TABLE2.table_one_idLEFT”

任何见解将不胜感激。

4

1 回答 1

2

您需要在第一个连接条件的末尾添加一个空格:

$test = $this->modelsManager->createBuilder()
        ->from('TABLE1')
        ->leftJoin('TABLE2', 'TABLE1.id = TABLE2.table_one_id ')
        ->leftJoin('TABLE3', 'TABLE3.id = TABLE2.table_three_id')
        ->where('TABLE1.id = :id:', array('id' => $id))
        ->groupBy(array('TABLE1.id'))
        ->getQuery()
        ->execute();
于 2013-05-31T07:54:36.880 回答