doctrine:DQL查询中的HAVING子句

时间:2011-12-02 15:05:55

标签: doctrine-orm dql having-clause

我正在使用symfony2中的一个简单论坛,并使用以下DQL查询来获取每个论坛中的最后帖子:

SELECT p, f.id FROM MyBundle:Post p
JOIN p.forum f
GROUP BY p.forum
HAVING p.created_at >= MAX(p.created_at)

如果没有HAVING子句,它可以工作并获取第一个帖子,但这不是我想要的。

我在这里做错了什么?这甚至可以使用DQL吗?

1 个答案:

答案 0 :(得分:3)

当然是我的错,而不是DQL。 :)更新的查询有点复杂,需要子查询。如果有人有更好的方法,请告诉我。

SELECT post, f.id as forum_id FROM MyBundle:Post post
JOIN post.forum f
WHERE post.id in (
    SELECT MAX(p.id) FROM MyBundle:Post p
    GROUP BY p.forum
)

This Blog Post完成了我褪色的SQL知识。