【发布时间】:2013-04-02 12:16:48
【问题描述】:
我有 3 个带列的表
A:
id
B:
id
a_id
C:
id
b.id
使用原生查询:
SELECT a.id, b.id, c.id
FROM A as a
LEFT JOIN B as b
INNER JOIN C as c ON b.id = c.b_id
ON a.id = b.a_id
我试过了
SELECT a.id, b.id, c.id
FROM App\HomeBundle\Entity\A as a
LEFT JOIN App\HomeBundle\Entity\B as b
INNER JOIN App\HomeBundle\Entity\C as c
ON c.id = c.bId
ON a.id = b.aId
我遇到了错误:
Error: Expected Literal, got 'JOIN'
是否可以将我的本机查询转换为 DQL 或查询生成器?如果可能,它会是什么样子?
【问题讨论】:
-
尝试将最后一个
ON子句移到LEFT JOIN子句之后的适当位置。正如所写,它看起来语法不正确。 -
是的,我已经尝试过了。但与原生查询相比,我得到了不同的结果。
-
根据groups.google.com/forum/#!topic/doctrine-user/0rNbXlD0E_8,我认为用 Doctrine 做这个查询是不可能的。
标签: doctrine-orm doctrine query-builder