Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод категорий и количества элементов находящихся в них
 
 автор: Clocker   (03.12.2005 в 13:42)   письмо автору
 
 

Например, есть таблица категории
в ней два поля: id и name

есть еще таблица с элементами (id, cid и т.д.), которые находятся в своей категории

Как сделать вывод категорий, чтобы рядом с названием категории было указано количество элементов находящихся в ней?

У меня запрос выглядит так:

$db->query("SELECT A.id, A.name, B.cid, count(B.id) as newCount FROM $tbl1 A LEFT JOIN $tbl2 B ON A.id=B.cid GROUP BY B.cid ORDER by name");


Но он выводит только категории, в которых что-то есть. А надо чтобы выводилось все. Как сделать? Что не так в запросе?

   
 
 автор: Artem S.   (03.12.2005 в 13:45)   письмо автору
 
   для: Clocker   (03.12.2005 в 13:42)
 

Попробуйте
GROUP BY B.cid
заменить на
GROUP BY A.id

   
 
 автор: Clocker   (03.12.2005 в 14:23)   письмо автору
 
   для: Artem S.   (03.12.2005 в 13:45)
 

не то

   
 
 автор: cheops   (03.12.2005 в 21:33)   письмо автору
 
   для: Clocker   (03.12.2005 в 13:42)
 

А таблицы как выглядят и как связаны?

   
 
 автор: Clocker   (04.12.2005 в 00:31)   письмо автору
 
   для: cheops   (03.12.2005 в 21:33)
 

категории:
id
name

элементы
id
cid
name
photo
year
race
и т.п.

связаны по cid

   
 
 автор: cheops   (04.12.2005 в 14:02)   письмо автору
 
   для: Clocker   (04.12.2005 в 00:31)
 

Тогда необходимо писать, как предложил Artem S.
$db->query("SELECT A.id, A.name, B.cid, count(B.id) as newCount FROM $tbl1 A LEFT JOIN $tbl2 B ON A.id=B.cid GROUP BY A.id ORDER by name");

А почему этот вариант не подходит?

   
 
 автор: Clocker   (04.12.2005 в 15:09)   письмо автору
 
   для: cheops   (04.12.2005 в 14:02)
 

Спасибо. только непонятно, почему не работало раньше...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования