neowaring
@neowaring
Разработчик неизвестных систем

Как добавить сортировку для каждого UNION SQL?

Как можно отсортировать данные с сортировкой в каждом запросе ?
В первом сортировать от столбца "p"
Во втором сортировать от столбца "v_p"
В третьем сортировать от столбца "d_p"

Мой запрос не срабатывает

spoiler
SELECT * FROM catalog_ads  
WHERE status = 1 AND category_id = 1 AND moderation = 0 AND ad_diamond = 0 AND ad_vip = 0 
ORDER BY `p` DESC)  
UNION  
(SELECT *  FROM catalog_ads
WHERE status = 1 AND category_id = 1 AND moderation = 0 AND ad_vip = 1
ORDER BY `v_p` DESC) 
UNION  
(SELECT *  FROM catalog_ads
WHERE status = 1 AND category_id = 1 AND moderation = 0 AND ad_diamond = 1 
ORDER BY `d_p` DESC)


Что бы потом вывести первые diamond объявления с сортировкой по "d_p" вторые vip с сортировкой по "v_p" и обычное с сортировкой по "p"

Работаю в Laravel его методами так нельзя сделать. Может sql прямой выйдет, но загвоздка в сортировке.
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
SELECT `p`, * FROM catalog_ads  
WHERE status = 1 AND category_id = 1 AND moderation = 0 AND ad_diamond = 0 AND ad_vip = 0 
UNION  
SELECT `v_p`, *  FROM catalog_ads
WHERE status = 1 AND category_id = 1 AND moderation = 0 AND ad_vip = 1
UNION  
SELECT `d_p`, *  FROM catalog_ads
WHERE status = 1 AND category_id = 1 AND moderation = 0 AND ad_diamond = 1 
ORDER BY 1 DESC
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы