Как вывести по 2 записи из каждой категории игр с лучшим рейтингом?

Я достаю две самые успешные игры из каждой категории и потом из полученной десятки оставляю 5 лучших игр.

SELECT * FROM (SELECT * FROM ((SELECT * FROM games
WHERE category_id = 1
ORDER BY rating DESC LIMIT 2)
UNION
(SELECT *FROM games
WHERE category_id = 2
ORDER BY rating DESC LIMIT 2)
UNION
(SELECT * FROM games
 WHERE category_id = 3
 ORDER BY rating DESC LIMIT 2)
 UNION
 (SELECT * FROM games
 WHERE category_id = 4
 ORDER BY rating DESC LIMIT 2)
 UNION
 (SELECT *
 FROM games
 WHERE category_id = 5
 ORDER BY rating DESC LIMIT 2)) as result
 ORDER BY rating DESC LIMIT 5) as success

Как мне добиться того же результата , но без использования UNION? И чтобы были вложенные запросы


Ответы (1 шт):

Автор решения: Andrey

Чтобы не дублировалось, используйте DISTINCT

→ Ссылка