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

Форум MySQL

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

 

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

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

тема: COUNT() при использовании JOIN
 
 автор: mastergrom   (21.12.2009 в 21:57)   письмо автору
 
 

Добрый день,
есть три таблицы:
таблица a
a_id
some_stuff
таблица b
b_id
a_id
some_stuff
таблица с
с_id
a_id
b_id
some_stuff

Нужно вывести все значения из таблицы а, при этом выхватить количество записей равных текущему a_id в таблицах b и с.
подскажите пожалуйста, как правильно составить запрос ?
Я так полагал, что это будет работать, но увы:
SELECT a.some_stuff, count(b.a_id) as count_b, count(c.a_id) as count_с FROM a LEFT JOIN b ON a.a_id = b.a_id LEFT JOIN с ON a.a_id = c.a_id GROUP BY a.a_id

  Ответить  
 
 автор: Fractured#   (21.12.2009 в 23:21)   письмо автору
 
   для: mastergrom   (21.12.2009 в 21:57)
 

Как-то так
SELECT `some_stuff`, COUNT(`b_id`) AS `count_b`, COUNT(`c_id`) AS `count_c` FROM
(

    SELECT `a`.`some_stuff`, `a`.`a_id`, `b`.`b_id`, `c`.`c_id` FROM `a`
    LEFT JOIN `b` ON `a`.`a_id` = `b`.`a_id`
    LEFT JOIN `с` ON `a`.`a_id` = `c`.`a_id` AND `b`.`b_id` = `c`.`b_id`
    GROUP BY `a`.`a_id`, `b`.`b_id`

) AS `t` GROUP BY `a_id`;

  Ответить  
Rambler's Top100
вверх

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