







|
MySQL.RU - Webboard
Вернуться
выбрать все разделы, последнюютему в каждом, (Damon) 06/06/2007 - 10:11:00
Re: Re (AXAE) 06/06/2007 - 12:06:20
Re: Re (Damon) 06/06/2007 - 14:14:27
From: Damon - 06/06/2007 - 10:11:00
Subject:выбрать все разделы, последнюютему в каждом,
-----------------
Делаю простенький форум.
Структура базы:
TABLE post (
post_id,
post_date,
post_message,
post_author,
post_author_ip,
post_thread,
PRIMARY KEY (post_id)
);
TABLE section (
section_id,
section_icon,
section_title,
section_reference,
section_contents,
section_blocked,
PRIMARY KEY (section_id)
);
TABLE thread (
thread_id,
thread_icon,
thread_title,
thread_date,
thread_reference,
thread_author,
thread_author_ip,
thread_section,
thread_contents,
thread_blocked,
thread_position,
thread_views,
PRIMARY KEY (thread_id)
)
При ответе в некоторой теме, для нее обновляется thread_position = GMT (по этому полю упорядочиваются темы).
На главной странице нужно вывести разделы, вместе с тем - указать в какой теме соответствующего раздела была оставлена последняя запись (вывести название темы, дату и имя автора постинга).
select section.*, thread.thread_id, thread.thread_title, post.post_date, post.post_author
from
section left join thread on thread.thread_position = (select max(thread_position) from thread where thread_section = section.section_id) order by section_id
Вот, выглядит ужасно, но срабатывает - выводит наименование темы в которой последний раз пропостились. Проблема: добавляю -
left join post on post.post_id = (select max(post_id) from post where post_thread = thread.thread_id), чтобы определить дату постинга и имя последнего отписавшегося, но post_date и post_author возвращаются пустыми.
Все ли я делаю правильно? Как иначе можно решить эту задачу?
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
31640
|
|