【发布时间】:2014-07-06 21:23:48
【问题描述】:
我有一个如下所示的 DQL:
SELECT at, count(at.id) FROM AccountTriple at JOIN at.property p JOIN at.account ac WHERE p.create_analytics = '1' GROUP BY at.property, at.value, ac.service
如您所见,它有三个连接。因为'at'和'ac'都有大量数据。为了优化它,我试图将加入之前的“p.create_analytics = '1'”检查移动到“ac”,以给它一个较小的数据集来加入。我正在尝试实现这样的目标:
SELECT at, count(at.id) FROM ( SELECT at FROM AccountTriple at JOIN at.property p WHERE p.create_analytics = '1' ) JOIN at.account ac GROUP BY at.property, at.value, ac.service
但不知何故,我的语法不起作用。错误信息显示如下:
语义错误] line 0, col 29 near '( SELECT at FROM': Error: Class '(' is not defined.
在其他任何地方也没有找到类似的例子。有谁可以帮助修复此 DQL 查询以使其正常工作?提前致谢。
【问题讨论】:
标签: php mysql doctrine-orm doctrine dql