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




MySQL.RU - Webboard



Вернуться
Люди помогите сделать запрос из трех таблиц (StealtH) 19/08/2004 - 13:14:06
      Re: Люди помогите сделать запрос из трех таблиц (простохуй) 19/08/2004 - 15:32:47
      Re: Люди помогите сделать запрос из трех таблиц (StealtH) 19/08/2004 - 19:44:24
      Re: Люди помогите сделать запрос из трех таблиц (простохуй) 20/08/2004 - 10:39:21
      Re: Люди помогите сделать запрос из трех таблиц (StealtH) 20/08/2004 - 11:39:30
      Re: Люди помогите сделать запрос из трех таблиц (StealtH) 21/08/2004 - 03:49:45
      Re: Люди помогите сделать запрос из трех таблиц (простохуй) 23/08/2004 - 12:58:49
      Re: Люди помогите сделать запрос из трех таблиц (StealtH) 24/08/2004 - 01:28:42
      Re: Люди помогите сделать запрос из трех таблиц (простохуй) 24/08/2004 - 09:46:08
      Re: Люди помогите сделать запрос из трех таблиц (StealtH) 24/08/2004 - 13:32:26

> Original message text:
> From: StealtH - 19/08/2004 - 13:14:06
> Subject:Люди помогите сделать запрос из трех таблиц
> -----------------
> Вообщем такая ситуация:
> Есть две таблицы: RAZDEL(наименование разделов, поля: ID-идентификатор раздела, R_name-наименование, и другие в данной ситуации не имеющие значения), MESSAGE(сообщения, поля:ID-идентификатор, razdel - ID раздела, category-категория, hits-количество просмотров и др.).
> Есть запрос:
> $sql="SELECT razdel.ID, message.razdel, razdel.R_name, count(*) AS mcount, sum(message.hits) AS allsum
> FROM razdel LEFT JOIN message ON (message.razdel = razdel.ID)
> GROUP BY razdel.ID
> ORDER BY razdel.ID, razdel.R_name, mcount, allsum";,
> где R_name - имя раздела, mcount - количество мессаг, allsum - количество просмотров мессаг по конкретному разделу. Все замечательно, рульно работает.
> Теперь вводится изменение: удаляется поле hits, и создается таблица hits(таблица статистики просмотра мессаг, razdel - ID раздела, category, message - ID мессаги, data - дата просмотра, time - время, IP, и др.). Назначение - сбор статистики по просмотрам.
> Теперь сама задача, сделать запрос сразу к трем таблицам, чтобы выводились следующие данные, имя раздел(R_name), количество сообщений(mcount), количество просмотров(allsum), количество добавленных сообщений за текущий день(message_today), количество просмотров за текущий день(count_today). Пробовал ставить два добавлять переменные и счетчики(COUNT)и условия в секции ON, вывод данные по последнему условию, или вообще какую-то лажу:(
> Просьба помогите с данной траблой, посоветуйте как это сделать одним запросом, или если одним не получится, то несколькими, только чтоб результаты можно было обработать одним циклом.
>


From: простохуй - 23/08/2004 - 12:58:49
Subject:Люди помогите сделать запрос из трех таблиц
-----------------
хм. только что заметил. так что же таблица хитов джойнится с таблицей разделов? ну это же бред, так нельзя.
мы имеем таблицу разделов в каждом из которых может быть много сообщений, а для каждого сообщения мы имеем таблицу хитов, следовательно связь должна быть разделы-<сообщения-<хиты.

в данном случае знаком -< показано отношение один ко многим.

тогда правильный запрос будет:

SELECT razdel.ID, razdel.R_name, COUNT(message.razdel) message_count, COUNT(hits.id) hits_count, SUM(IF(hits.data=curdate(),1,0)) hits_today,SUM(IF(message.m_date=curdate(),1,0)) message_today FROM razdel LEFT JOIN message on razdel.ID=message.razdel LEFT JOIN hits on message.id=hits.message GROUP BY razdel.ID ORDER BY razdel.ID




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

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

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



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