powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сложный Order by
5 сообщений из 5, страница 1 из 1
Сложный Order by
    #38833747
Yanis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Есть два рабочих запроса:
Код: sql
1.
2.
3.
Select fields From tables_joins where 
WHERE conditions AND toTop=1
ORDER BY top_time DESC


Код: sql
1.
2.
3.
Select fields From tables_joins where 
WHERE conditions AND toTop=0
ORDER BY raise_time DESC



Выдача полей идентичная.
Сначала выполняется верхний запрос, затем - нижний.
Помогите, пожалуйста, объединить эти запросы в один.

Сделать можно все, только знать бы - как
...
Рейтинг: 0 / 0
Сложный Order by
    #38833780
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UNION ALL, какие проблемы? И при чём тут ORDER BY?

Или, может, имеется в виду, что в выходном наборе они должны быть сортированы так - сначала записи первого набора, потом второго? тогда в выходном наборе должны быть поля (если их нет - добавить) toTop, top_time и raise_time, и суммарный набор сортировать по
Код: sql
1.
ORDER BY toTop DESC, CASE toTop WHEN 1 THEN top_time WHEN 0 THEN raise_time END
...
Рейтинг: 0 / 0
Сложный Order by
    #38834274
Yanis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaUNION ALL, какие проблемы? И при чём тут ORDER BY?

Или, может, имеется в виду, что в выходном наборе они должны быть сортированы так - сначала записи первого набора, потом второго? тогда в выходном наборе должны быть поля (если их нет - добавить) toTop, top_time и raise_time, и суммарный набор сортировать по
Код: sql
1.
ORDER BY toTop DESC, CASE toTop WHEN 1 THEN top_time WHEN 0 THEN raise_time END




Спасибо огромное!
Я почему-то не догадывался условия внутри Order by ставить.
Было интересно как раз без Union обойтись. Считайте это спортивным интересом.

По времени получилось (два прогона каждого запроса всего сделал) вот что:
Запрос1 = 0.0028
Запрос2 = 0.0111
ORDER BY toTop DESC, CASE toTop WHEN 1 THEN top_time WHEN 0 THEN raise_time END DESC = 0,0175
(Запрос1) UNION (Запрос2) = 0,0591
...
Рейтинг: 0 / 0
Сложный Order by
    #38834276
Yanis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(Запрос1) UNION ALL (Запрос2) = 0,0482
...
Рейтинг: 0 / 0
Сложный Order by
    #38834509
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YanisЯ почему-то не догадывался условия внутри Order by ставить.case тут не условие, а выражение
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сложный Order by
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]