Новости
Документация
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

> Original message text:
> 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 возвращаются пустыми.
>
> Все ли я делаю правильно? Как иначе можно решить эту задачу?
>


From: AXAE - 06/06/2007 - 12:06:20
Subject:Re
-----------------
У тебя и имена полей выглядят просто ужасно...

А если вот что-то такое ему подсунуть:

SELECT section.*, thread.thread_id, thread.thread_title, post.post_date, post.post_author

FROM

section LEFT JOIN thread ON tread_section ON (thread_section=section_id) LEFT JOIN post ON (thread_id=post_tread) GROUP BY section_id ORDER BY thread_position, post_id DESC


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
31640



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