学说:DQL 查询中的 HAVING 子句

发布于 2024-12-19 14:09:17 字数 280 浏览 2 评论 0原文

我正在 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 是否可以实现这一点?

I am working on a simple forum in symfony2 and have the following DQL query to get the last posts in each forum:

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

Without the HAVING clause it works and fetches the first posts but thats not what I want.

What am I doing wrong here? Is this even possible using DQL?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你的呼吸 2024-12-26 14:09:17

当然,这是我的错,而不是 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
)

这篇博文补充了我逐渐淡出的sql知识。

Of course it was my fault and not DQL's. :) The updated query is a bit more complex and requires a Subquery. If Someone has a better way to do this, please let me know.

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 completed my fading sql knowledge.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文