Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




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, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
31640



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |