Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Как правильно отсортировать выборку с DISTINCT


Автор: AlexanderI 27.5.2010, 11:11
Здравствуйте.
У меня такая задача "Вывести последние темы к которым добавлен последний коментарий" (т.е. последние прокоментированные темы)

Есть таблица сообщений 'mess':
user posted image

И таблица коментарии 'comments' к этим сообщениям

user posted image

поле comments.parent_id связывает принадлежность коментариев к темам

Делаю так:

Код

SELECT
DISTINCT
comments.parent_id,
mess.name
FROM comments
LEFT JOIN mess on (mess.id = comments.parent_id)
WHERE (comments.ehide is NULL) AND (mess.ehide is NULL)
ORDER BY comments.edate DESC


Результат выдаётся с неправильной сортировкой , т.е. сортируется не по edate , а наполовину по edate. Тоже самое происходит если сортировать по comments.id. 

Как сделать чтобы сортировка тем была по дате последнего коментария ?




Автор: gcc 27.5.2010, 11:19
http://forum.vingrad.ru/forum/topic-293695.html

Автор: Zloxa 27.5.2010, 11:26
Цитата(AlexanderI @  27.5.2010,  11:11 Найти цитируемый пост)
сортировка тем была по дате последнего коментария

Код

SELECT
   mess.id
  ,mess.name
  ,max(comments.edate ) last_comment_date
FROM mess
LEFT JOIN comments on (mess.id = comments.parent_id)
group by mess.id
ORDER BY last_comment_date DESC

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)