|
|
|
| Добрый день,
есть три таблицы:
таблица 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
|
| |
|
|
|
|
|
|
|
для: 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`;
|
| |
|
|
|