Не работает Order by с Unit

oopros

Новичок
Здравствуйте, есть запрос, но не могу понять почему не работает сортировка:

Код:
(select * from table where status='1' order by ID DESC) UNION (select * from table where status='2' order by ID DESC)
Был бы благодарен за помощь
 
Последнее редактирование:

Adelf

Administrator
Команда форума
а как она должна работать по твоему?
 

oopros

Новичок
выводит данные из таблицы table, где status=1 и сортируем по ID в обратном порядке, а затем данные из таблицы table, где status=2 и сортируем по ID в обратном порядке
 

fixxxer

К.О.
Партнер клуба
а нахрена тут вообще union?

select * from table where status in (1,2) order by status, id desc
 

oopros

Новичок
Не совсем правильно шаблон запроса написал так правильнее:
Код:
(select * from table where status='1' order by ID DESC) UNION (select * from table where pole='1' order by ID DESC)
 

WMix

герр M:)ller
Партнер клуба
Код:
(select * from table where status='1' ) UNION (select * from table where status='2') order by status=2, ID DESC
в UNION запросаз ORDER BY и LIMIT выносится за UNION

order by status=2

status=2 вернет 0 (false) для status != 2 и 1 (true) для status=2

если это ты хотел
 

fixxxer

К.О.
Партнер клуба
Без order by порядок не определен. У тебя есть order by только в подзапросах, что особого смысла не несет: снаружи order by нет, так что СУБД имеет полное право расположить в том порядке, какой получится в ее внутренних структурах (а там может быть что угодно: может получиться, что тебе повезло и получится что ты хотел, а может и нет).
 
Сверху