但是运行后我会出现一个错误:
[Semantical Error] line 0, col 80 near 'JOIN (SELECT': Error: Subquery is not supported here
如果我不调用 - > getquery(),但是使用getDql()拉sql,我得到了:
SELECT stand.id, stand.Name, count(checkin.id) FROM App\Entity\Stand stand LEFT JOIN (SELECT checkin.id, checkin.Nickname, checkin.Stand FROM App\Entity\Checkin checkin WHERE checkin.Nickname=10) checkins WITH stand.id=checkins.Stand GROUP BY stand.id
如何请我重写我的PHP代码以使其正常工作?
因为它隐含的“为什么?”部分,您的问题与
有关 问题
9086546,
34768821,45708320
,
53867867#2305
,#3542,#7116.
本质:您无法在面向对象的DQL中做到这一点(并且需要处理完整的对象,除了可以将其“非正式化”到单个字段的最终结果);要么您必须:
将其用于SQL而不是DQL
使用Connection
而不是EntityManager
(如果您希望结果作为对象,请手动保湿) 或找到一种不使用
FROM (SELECT
EXISTS
或
IN
)
如果我正确阅读,您可以直接从主查询中直接
LEFT JOIN
到
Checkin
= 10
添加到联接条件中。