absoluteplush
Guest
Выборка по три записи для каждого значения определенного поля
Есть запрос типа:
[sql] (
SELECT id, cy, dt, parent
FROM table
WHERE parent =1
AND visible = '1'
ORDER BY cy DESC
LIMIT 0 , 3
)
UNION (
SELECT id, cy, dt, parent
FROM table
WHERE parent =6
AND visible = '1'
ORDER BY cy DESC
LIMIT 0 , 3
)
UNION (
SELECT id, cy, dt, parent
FROM table
WHERE parent =9
AND visible = '1'
ORDER BY cy DESC
LIMIT 0 , 3
)
ORDER BY parent;[/sql]
То есть в результате мне нужно получить по три записи для каждого значения parent (1, 6, 9).
Для простоты убрал пару юнионов, но сами понимаете что это долго, тем более что юнионов будет 8-12. Как это оптимизировать или запросить без юнионов?
Есть запрос типа:
[sql] (
SELECT id, cy, dt, parent
FROM table
WHERE parent =1
AND visible = '1'
ORDER BY cy DESC
LIMIT 0 , 3
)
UNION (
SELECT id, cy, dt, parent
FROM table
WHERE parent =6
AND visible = '1'
ORDER BY cy DESC
LIMIT 0 , 3
)
UNION (
SELECT id, cy, dt, parent
FROM table
WHERE parent =9
AND visible = '1'
ORDER BY cy DESC
LIMIT 0 , 3
)
ORDER BY parent;[/sql]
То есть в результате мне нужно получить по три записи для каждого значения parent (1, 6, 9).
Для простоты убрал пару юнионов, но сами понимаете что это долго, тем более что юнионов будет 8-12. Как это оптимизировать или запросить без юнионов?