我有一个与MySQL通常执行的查询:语义错误,Symfony的DQL
SELECT *
FROM td_user u
JOIN td_ranking ranking ON ranking.user_id = u.id
JOIN (
SELECT x.user_id,
MAX(x.id) AS default_id
FROM td_ranking x
GROUP BY x.user_id
) y
ON y.user_id = ranking.user_id
AND y.default_id = ranking.id
我试图改变它在DQL的运行它的Symfony:
$query = $this->_em->createQuery('
SELECT u.*,ranking.*
FROM UserBundle:User u
JOIN UserBundle:Ranking ranking
WITH ranking.user_id = u.id
JOIN (
SELECT x.user_id, MAX(x.id) AS default_id
FROM UserBundle:Ranking x
GROUP BY x.user_id
) y
ON y.user_id = ranking.user_id
AND y.default_id = ranking.id'
);
$results = $query->getResult();
我有这样的错误:
[语义错误] 0行,列113 '附近(SELECT x.user_id,':错误:类 '(' 没有定义
你有什么想法吗?谢谢!
您不必为排名实体USER_ID财产。 –
哦,是的......但如何做到这一点?我尝试这一点,但结果是一样的:“ 选择U *,*排名从 UserBundle:用户U JOIN UserBundle:排名排名 WITH ranking.user_id = u.id JOIN( SELECT x.user ,MAX(x.id)AS default_id FROM UserBundle:Ranking x GROUP BY x.user)y ON y.user = ranking.user AND y.default_id = ranking.id“ – Tom59
事实上,我有一个OneToMany用户与排名的关系。许多排名可以链接到用户。在我的要求中,我想获取每个用户的最后排名......您有想法吗? – Tom59