Присоединяйтесь и подсчитывайте в 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 и почему есть разница между двумя результатами. Не могли бы вы рассказать мне, как заставить это соединение работать в Doctrine?

6
задан Elnur Abdurrakhimov 8 February 2013 в 17:44
поделиться