Я пытаюсь выполнить этот запрос:Как использовать MySQL UNION внутри UNION ALL
(
SELECT co.id as offerId, co.title, co.details, co.link, co.reference, co.rank
FROM club_offer co
WHERE co.id IN (31, 791, 360, 382)
GROUP BY offerId
UNION
SELECT co.id as offerId, co.title, co.details, co.link, co.reference, co.rank
FROM club_offer co
WHERE co.id IN (869, 376, 201, 1246)
GROUP BY offerId
ORDER BY rank DESC
)
UNION ALL
(
SELECT co.id as offerId, co.title, co.details, co.link, co.reference, co.rank
FROM club_offer co
WHERE co.id IN (117, 168, 193, 204, 330, 377, 378, 379, 380, 381, 452, 931, 980, 1100, 1146, 1147, 1190, 1247)
GROUP BY offerId
ORDER BY rank DESC
)
Но я получаю сообщение об ошибке:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION
Таким образом, я предполагаю, что либо я использую неправильный синтаксис или Я пытаюсь сделать что-то, что нельзя сделать. Я предполагаю, что скрипт SQL для этого не нужен, скорее всего, опытные люди сразу поймут, что не так.
Может кто-нибудь помочь? Спасибо
Снимите 'ORDER BY's – Lamak
Не помог ..... –
Почему GROUP BY, когда нет агрегатных функций используются? Кроме того, может ли MySQL иметь псевдонимы столбцов в GROUP BY? – jarlh