Вот 2 таблицы моего проекта Symfony2:
+-----------+ +----------------------------+
| EVENT | | PHOTO |
+-----------+ +------+-----------+---------+
| id | | id | event_id | likes |
+-----------+ +------+-----------+---------+
| 1 | | 1 | 1 | 90 |
| 2 | | 2 | 1 | 50 |
+-----------+ | 3 | 2 | 20 |
| 4 | 2 | 10 |
+------+-----------+---------+
Я хотел бы выбрать 2 события с наиболее понравившейся фотографией, которая выглядела бы так:
+------------+------------+---------+
| event_id | photo_id | likes |
+------------+------------+---------+
| 1 | 1 | 90 |
+------------+----------------------+
| 2 | 3 | 20 |
+------------+----------------------+
Решение SQL объясняется здесь (SQL Select only rows with Максимальное значение в столбце) и может быть:
SELECT p.event_id, p.likes, p.id
FROM photo p
INNER JOIN(
SELECT event_id, max(likes) likes
FROM photo
GROUP BY event_id
) ss on p.event_id = ss.event_id and p.likes = ss.likes
Каким должен быть DQL-запрос для этого? Я пробовал многое, но всегда получаю ошибки.