加入并计入DQL
|
我有一个MySQL命令,但找不到DQL中的等效命令。我正在尝试获取评论最多的帖子。这是MySQL命令:
SELECT posts.id, COUNT(comments.id) AS num
FROM posts
LEFT JOIN comments ON ( posts.id = comments.post_id )
GROUP BY posts.id
结果如下:
id num
1 8
2 9
3 17
4 7
5 6
6 20
7 7
8 10
9 14
10 7
在DQL中,应为:
SELECT post, COUNT(comment.id) AS num
FROM Entity\\Post post
LEFT JOIN post.comments comment
GROUP BY post.id
但这给出了:
id num
1 50
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
我不知道50的来源以及为什么这2个结果之间会有差异。你能告诉我如何使这种联接在Doctrine中起作用吗?
没有找到相关结果
已邀请:
3 个回复
疮痪徘弦漏
数据库架构非常简单,我认为不需要任何解释。
如果选择整个
对象而不是其ID(在
子句中用
而不是
),查询也将执行。当然,在第0个元素下方将有一个
对象,而不是
元素。 在教义2.1.0-DEV上测试
寇剩
您是按照
而不是
分组 顺便说一句,这是一个总的猜测。我不了解DQL,但我确实知道休眠状态,而且看起来类似。如果不正确,我将删除此答案-通过评论让我知道。
凸晴
您不应该选择
吗?我知道这听起来很奇怪,但据我了解,
等于
。然而,在您的输出中,您仅获得ID列。我认为可能值得注意(即使不是)。 /准备投票