[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Почему слетает сортировка в sql запросе
vuler
Никак не могу понять почему mysql выдает разные по сортировке таблицы в двух запросах типа:

SELECT date, text, topic_id FROM forum_msgs
ORDER BY topic_id,date DESC


и в запросе типа:

SELECT * FROM (SELECT date, text, topic_id FROM forum_msgs
ORDER BY topic_id,date DESC) t1

В результате GROUP BY во втором запросе делать бессмысленно.
AllesKlar
В первом запросе ты выбрал результат и отсортировал.

Во втором:
Подзапрос выбрал результат, отсортировал (не имеет смысла), а потом выбрал результат основынм запросм, отдав сортировку результата на усмотрение СУБД.
Чтобы был одинаковый результат, то второй запрос изменить на:

SELECT * FROM (SELECT date, text, topic_id FROM forum_msgs 
) t1 ORDER BY t1.topic_id, t1.date DESC


_____________
[продано копирайтерам]
vuler
Никак не могу добиться, чтобы это запрос, например, выдавал последнюю по дате запись в каждом topic_id, а не первую, которую нашел в таблице.

SELECT * FROM (SELECT date, text, topic_id FROM forum_msgs 
ORDER BY topic_id,date DESC) t1 GROUP BY topic_id ORDER BY t1.topic_id, t1.date DESC
Valick
Цитата (vuler @ 24.02.2017 - 18:01)
Никак не могу добиться

и не добьётесь
GROUP BY никто не указ

_____________
Стимулятор ~yoomoney - 41001303250491
vuler
Подсказали нормальную тему для запроса, оказалось все проще можно сделать.
.... WHERE (topic_id, date) IN (SELECT topic_id, max(date) FROM forum_msgs GROUP BY topic_id)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.