@deight

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

Есть две таблицы, первая a:
id|name
Вторая b:
id|section|name|type

В первой разделы, во второй подразделы.

В разделах допустим
1|section1
2|section2
3|section3

В подразделах
1|1|name1|0
2|1|name2|2
3|1|name3|2
4|2|name4|1

Делаю выборку так(упрощенно):
SELECT a.name, a.id, count(b.id) FROM a,b WHERE b.section=a.id GROUP BY a.id

Получаю соответственно 1|section1|3 и 2|section2|1.

1.Можно ли одним запросом получить еще и 3|section3|0?
2.Можно ли получить еще в этом же запросе количество подразделов с type=2 в разделе.

В итоге нужно получить одним запросом:
1|section1|3|2
2|section2|1|0
3|section3|0|0
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
@drunking
Почитайте про left/right outer join
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@loodev
Разработчик свободного полёта
Может как-то так(работоспособность не проверял):
SELECT a.id, a.name, COUNT(section) as con, COUNT(type) as typ 
FROM `a` 
LEFT JOIN b 
   ON a.id=b.section 
GROUP BY b.section
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы