Здравствуйте. Есть доска объявлений. Есть 2 таблицы, таблица категорий, имеет следующий вид
И есть таблица объявлений
Нужно с помощью одного select-запроса выбрать
1) все имеющиеся категории
2) количество объявлений в каждой категории
3) общее количество объявлений в родительской категории
Смотрите на скриншоты, есть объявление с id=3, оно принадлежит категории category_id=8. Категория id=8 это Автомобили, значит в этой категории одно объявление (2 условие из моей задачи).
В свою очередь у категории Автомобили, есть родитель parent_id=7, это категория Авто и у неё нужно посчитать общее количество всех объявлений во всех её дочерних категориях (3 условие из моей задачи). В данном примере - одно.
Что я уже сделал
SELECT c.name, count(b.id) FROM `category` as c LEFT JOIN `board` as b ON c.id=b.category_id LEFT JOIN `category` as p ON p.id=c.parent_id GROUP BY c.name
где
category - таблица категорий
board - таблица объявлений
Я получаю такой результат
В котором выполняются первые мои 2 условия. Нехватает 3-его, на скриншоте видно, что в "Авто" 0 объявлений, а должно быть 1, поскольку в его дочерней категории Автомобили имеется 1 объявление. Можно либо в этот же столбец посчитать (если такое возможно) или отдельным столбцом, сколько всего в родительской категории объявлений.
Прощу помощи у знающих. Спасибо.