|
|
|
|
|
для: Trianon
(29.06.2009 в 21:47)
| | Да, вроде оно. Совсем голова отключилась.
Спасибо, Trianon | |
|
|
|
|
|
|
|
для: Axxil
(29.06.2009 в 21:23)
| |
SELECT t.*, MAX(m.mess_create_date) AS mmcd
FROM threads t
LEFT JOIN messages m ON m.thread_id = t.thread_id
GROUP BY t.thread_id
ORDER BY t.thread_create_date DESC
|
Видимо, я упустил какой-то подвох...
Пардон за то, что изменил алиасы.
Но работать с незвучащими алиасами выше моих сил. | |
|
|
|
|
|
|
| Вводные:
Таблица с темами:
thread_id | thread_create_date....
|
Таблица с сообщениями
message_id | thread_id | mess_create_date.....
|
Нужно объединить и отсортировать таблицы так, чтобы темы шли по убыванию thread_create_date но mess_create_date было максимальным для каждой темы.
Короче, классическая задача - вывести последние темы форума с полем последнего сообщения.
Обычный запрос:
SELECT t1.*,t2.*
FROM threads t1
LEFT JOIN messages t2 ON t2.thread_id = t1.thread_id
GROUP BY t1.thread_id
|
не позволяет сортировать присоединяемую таблицу messages. А надо бы.
Есть наверное тут решение для одного запроса? Задача то достаточно распространённая. | |
|
|
|
|