【发布时间】:2018-02-16 19:06:16
【问题描述】:
我正在尝试将我相对简单的 SQL 语句翻译成适用于 Doctrine 的语句。
这是 SQL 语句,在对我的数据库运行时按要求工作:
SELECT a.*
FROM score a
INNER JOIN (
SELECT name, MAX(score) AS highest
FROM score
GROUP BY name
) b
ON a.score = b.highest AND a.name = b.name
GROUP BY name
ORDER BY b.highest DESC, a.dateCreated DESC
这是迄今为止的 DQL 尝试:
$kb = $em->createQuery(
"SELECT a
FROM ShmupBundle:Score a
INNER JOIN a.name ShmupBundle:Score b WITH a.score = b.score AND a.name = b.name GROUP BY b.name
WHERE a.platform='keyboard'
GROUP BY a.name
ORDER BY b.score DESC, a.dateCreated DESC"
);
目前出现此错误的是:
[Semantical Error] line 0, col 73 near 'ShmupBundle:Score': Error: Class ShmupBundle\Entity\Score has no association named name
表格本身非常简单: id, name, score, platform, dateCreated
有多个条目具有相同的名称,但分数不同。我只想显示每个名称的“高分”。我已经试穿了一两天了,没有运气。谁能指出我正确的方向?
【问题讨论】:
-
你能分享实体 ShmupBundle:Score 吗?
标签: php mysql symfony doctrine greatest-n-per-group