Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсчет количество тем и сообщений 
:(
    Опции темы
Reverent
Дата 24.3.2010, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 30.5.2007

Репутация: нет
Всего: нет



Подсчет количество тем и сообщений

Добрый день, в данный момент пишу форум, и столкнулся с такой задачей. Нужно вывести количество тем и сообщений добавленных для данного раздела. У меня есть таблицы:

Таблица категорий:
Код

CREATE TABLE forumSections
(
id_forumSections MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,

name VARCHAR(255) NOT NULL,
weight SMALLINT,

PRIMARY KEY(id_forumSections)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


Код

Таблица подкатегорий:
CREATE TABLE forumSubSections
(
id_forumSubSections MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
id_forumSections MEDIUMINT(8) UNSIGNED NOT NULL,

name VARCHAR(255) NOT NULL,
weight SMALLINT,
description VARCHAR(255),

PRIMARY KEY(id_forumSubSections),
INDEX(id_forumSections)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


Таблица тем:
Код

CREATE TABLE forumThemes
(
id_forumThemes MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
id_forumSubSections MEDIUMINT(8) UNSIGNED NOT NULL,
id_users MEDIUMINT(8) UNSIGNED NOT NULL,
id_forumMessages_last MEDIUMINT(8) UNSIGNED,

header VARCHAR(100) NOT NULL,
shows MEDIUMINT(8) UNSIGNED,

PRIMARY KEY(id_forumThemes),
INDEX(id_forumSubSections),
INDEX(id_users), 
INDEX(id_forumMessages_last)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


Таблица сообщений
Код

CREATE TABLE forumMessages
(
id_forumMessages MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
id_forumThemes MEDIUMINT(8) UNSIGNED NOT NULL,
id_users MEDIUMINT(8) UNSIGNED NOT NULL,

message TEXT(5000) NOT NULL,
dateAndTimeAdd DATETIME NOT NULL,
dateAndTimeEdit DATETIME, 

picture MEDIUMBLOB,
picture_format VARCHAR(255),

PRIMARY KEY(id_forumMessages),
INDEX(id_forumThemes), 
INDEX(id_users)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


Соответственно я хочу вывести таблицу, которая содержала бы название подкатегории, количество тем добавленных в нее, и количество сообщений которые были бы размещены в ней. Для этого я пишу такой запрос:

Код

SELECT 
forumSubSections.name AS nameSubSections, 
COUNT(forumThemes.id_forumThemes) AS countThemes, 
COUNT(forumMessages.id_forumMessages) AS countMessage 

FROM 
forumSections, 
forumSubSections 
LEFT JOIN forumThemes ON forumSubSections.id_forumSubSections = forumThemes.id_forumSubSections 
LEFT JOIN forumMessages ON forumThemes.id_forumThemes = forumMessages.id_forumThemes 

WHERE 
forumSections.id_forumSections = forumSubSections.id_forumSections 

GROUP BY forumSubSections.id_forumSubSections 
ORDER BY forumSections.weight, forumSubSections.weight;


Но проблема в том, что мне он возвращает только количество сообщений, т.к. поля countThemes и countMessage совпадают на выходе. Что я делаю не так, как правильно написать запрос?
PM MAIL   Вверх
Akina
Дата 24.3.2010, 11:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Count(Distinct)


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Reverent
Дата 25.3.2010, 06:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 30.5.2007

Репутация: нет
Всего: нет



Цитата(Akina @ 24.3.2010,  11:42)
Count(Distinct)

Что то не понял?  smile 
PM MAIL   Вверх
Akina
Дата 25.3.2010, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Reverent, попробуй отбросить предубеждения и почитать документацию...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 26.3.2010, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



Цитата(Reverent @  25.3.2010,  06:31 Найти цитируемый пост)
не понял

LMGTFY!



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0556 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.