Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SQL + LEFT JOIN + COUNT 
:(
    Опции темы
In0stRAnez
  Дата 12.5.2013, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Приветствую коллеги! Прошу помощи, вот код

необходимо подсчитать темы в каждой категории и в целом...
то есть смысл иаков вот табл.

ид - имя категории - линк - колво
1      Все                       ....         8
2      Кат 1                   ...           4
3       Кат 2                   ...           4
 

Код

SELECT `category`.`id`,`category`.`name`,`category`.`link`,COUNT(`tems`.`category`),COUNT(`tems`.`id`) 
FROM `category`
LEFT JOIN `tovar` 
ON `tovar`.`category` = `category`.`name`
WHERE `active` = '1' 
GROUP BY `category`.`id`


Спасибо за оперативность!
PM MAIL   Вверх
Vas
Дата 13.5.2013, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

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



Не пойму, а причем тут таблица товаров? 
Два запроса используйте, один для всех тем типа
1. Считаем все темы
Код

select count(*) from `topics`

2. Считаем темы по категориям
Код

SELECT `ct`.`id`, `ct`.`name`, `ct`.`link`, `cc`.`count_topic` FROM `category` `ct`
left outer join (SELECT count(*) as `count_topic`, `id_category` FROM `topics` GROUP BY `id_category`) `cc` ON `ct`.`id` = `cc`.`id_category`
WHERE `ct`.`active`=1

Можно их потом с помощью UNION объединить в один

P.S. А вообще триггеры используйте, заводите поле кол-во ответов в таблице категорий, а на таблицы тем вешйте триггеры, которые будут обновлять значения этого поля. Тогда все у вас сведется к одному простому запросу. Тем самым уменьшите нагрузку на сервер, показывать приходится чаще страницу, чем записывать данные в бд, верно?

Это сообщение отредактировал(а) Vas - 13.5.2013, 14:14


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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