也许我在这里做错了,但是在使用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 clause''
中的未知列'TABLE2.table_one_idLEFT'
非常感谢任何见解。
答案 0 :(得分: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();