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




MySQL.RU - Webboard



Вернуться
запрос (Александр) 20/07/2007 - 10:35:36
      Re: запрос (slash) 22/07/2007 - 18:22:06
      Re: запрос (Александр) 23/07/2007 - 02:57:24

> Original message text:
> From: Александр - 20/07/2007 - 10:35:36
> Subject:запрос
> -----------------
> Есть 3 упрощенные таблицы:
>
> users
> +----+-------+
> | id | login |
> +----+-------+
> *пользователи
>
> forums
> +----+-------+
> | id | name |
> +----+-------+
> *список форумов
>
> mess
> +----+------+------+-------+------+---------+
> | id | user | text | forum | date | main_id |
> +----+------+------+-------+------+---------+
> *сообщения форума
> в поле user записывается ID пользователя из таблицы users
> forum - ID форума из таблицы форума
> main_id - если=0, то это тема, если<>0, то это ответ на сообщение
>
> помогите застроить запрос так, чтобы он считал кол-во тем, количество ответов и выбирал последнюю тему (с максимальной датой)
> и пользователя, который это ообщение добавил
>
> т.е. чтобы получилось что-то вроде этого:
>
> Пробный форум | сообщений: 12 | ответов: 34 | Последний: Тема - test, Пользователь - Иван, дата - 2007-04-05 12:45:30
> Пробный форум2 | сообщений: 1 | ответов: 4 | Последний: Тема - test2, Пользователь - Вася, дата - 2007-04-08 22:36:12
>


From: slash - 22/07/2007 - 18:22:06
Subject:запрос
-----------------
Привет, одним запросом это не сделаешь так как нужна руппировка с различными условиями. Можно сделать серию запросов и на клиенте их собрать:
SELECT f.name,count(f.id) as themes FROM forum f left join mess m on m.forum=f.id
where m.main_id=0
group by f.id;
SELECT f.name,count(f.id) as replies FROM forum f left join mess m on m.forum=f.id
where m.main_id<>0
group by f.id;
SELECT m.text as thene,u.login as user,max(m.date) as date
FROM forum f
inner join mess m on m.forum=f.id
inner join users u on m.user=u.id
where
m.main_id=0
group by f.id

С уважением, Вячеслав


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

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

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



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