У меня есть несколько сложный запрос (урезанная версия):
SELECT a.item_id,
a.title,
a.series,
c.title AS manufacturer_title
FROM catalog_items AS a
JOIN catalog_franchises AS c ON a.manufacturer_id = c.franchise_id
JOIN catalog_franchises AS e ON a.game_id = e.franchise_id
WHERE e.franchise_id = 6
AND a.valid = TRUE
AND c.valid = TRUE
AND e.valid = TRUE
ORDER BY c.title, a.series, a.title
Важными полями, на которых я пытаюсь сосредоточиться, являются c.title
и a.series
. Поэтому для краткости этот запрос возвращает:
item_id series manufacturer_title
46 2 fantasy flight games
63 1 gaming heads
64 1 gaming heads
33 2 reaper miniatures
124 1 triforce
125 1 triforce
45 1 triforce
43 1 usaopoly
То, что я пытаюсь сделать, это добавить LIMIT
уникальную комбинацию этих полей на основе ... Если я добавлю: GROUP BY c.title, a.series
, это даст мне уникальные группы:
item_id series manufacturer_title
46 2 fantasy flight games
63 1 gaming heads
33 2 reaper miniatures
124 1 triforce
43 1 usaopoly
Но я хочу все строки, ограниченные этими группами. Поэтому, если предел равен 3, я хочу, чтобы все элементы в первых 3 группах:
item_id series manufacturer_title
46 2 fantasy flight games
63 1 gaming heads
64 1 gaming heads
33 2 reaper miniatures
Надеюсь, это имеет смысл. Как я могу изменить свой запрос для достижения этого?