【发布时间】:2014-08-25 11:23:08
【问题描述】:
我在原生 MySQL 代码中有这个查询
SELECT *
FROM `turn`
LEFT JOIN (
poi
) ON ( turn.id = poi.turn_id )
GROUP BY turn.id
ORDER BY count( case when poi.image = 1 then 1 else null end) DESC;
我需要在 Doctrine 2 DQL 中重建它
到目前为止我的尝试是这样的:
SELECT t, COUNT((CASE WHEN Bundle\Entity\Poi p.image = 1 then 1 ELSE NULL END)) AS num
FROM Bundle\Entity\Turn t
JOIN t.pois p
GROUP BY t.id
ORDER BY num DESC
我得到这个错误:
An exception has been thrown during the rendering of a template ("[Syntax Error] line 0, col 99: Error: Expected end of string, got '.'") in Bundle:Admin:showTurnsFiltered.html.twig at line 75.
我做错了什么?
【问题讨论】:
-
你到底在哪里得到这个错误?你如何使用你的 DQL 语句?
-
我在类 Repository 中使用它,在那里创建它并启动它。错误出现在我的前端。它是过滤功能的一部分,如果我调用此功能,则会出现服务器错误。堆栈跟踪和错误日志都没有提供有用的信息:/
-
删除一个
(和)怎么样,因为您使用的是两个括号:/ 这似乎是一个语法问题,因为您的查询看起来不错。 -
试过了,我又遇到了同样的错误,只是
'.'不是expected FROM condition
标签: mysql symfony doctrine-orm dql