[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Посчитать количество объявлений в parent_category
Santehnick
Здравствуйте. Есть доска объявлений. Есть 2 таблицы, таблица категорий, имеет следующий вид

user posted image

И есть таблица объявлений

user posted image

Нужно с помощью одного 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 - таблица объявлений

Я получаю такой результат
user posted image

В котором выполняются первые мои 2 условия. Нехватает 3-его, на скриншоте видно, что в "Авто" 0 объявлений, а должно быть 1, поскольку в его дочерней категории Автомобили имеется 1 объявление. Можно либо в этот же столбец посчитать (если такое возможно) или отдельным столбцом, сколько всего в родительской категории объявлений.

Прощу помощи у знающих. Спасибо.
Santehnick
- Category 1 (20)
---- Subcategory 1.1 (10)
---- Subcategory 1.2 (5)
---- Subcategory 1.3 (5)
- Category 2 (14)
---- Subcategory 2.1 (3)
---- Subcategory 2.2 (4)
---- Subcategory 2.3 (7)

Вот о чем речь. Красным выделил, то что нужно вычислить. Куча таких вопросов и в рунете и на англоязычных ресурсах и везде тишина. Интересно, как на том же Авито сделано sad.gif
philya
Я бы поле count добавил в таблицу с категориями и не парился
Oyeme
Так вообще-то не делаеться.У Вас архитектура немного другая.
При 10 000 записей ,Вы будете терять время + нагружать сайт каждый раз.
А если у Вас записей больше чем > 10 000,Вы будете все переделывать и искать оптимизацию.

Вот тут примерная структура как должно быть

http://falsinsoft.blogspot.co.uk/2013/01/t...-set-model.html

Каждый раз когда Вы добовляете запись в таблици ,обновляеться счетчик записей к категориям + выше стояши в рекурсионном способе.

Примрер
Вы добавили новую запись,и счетчик обновился + обновился во всех родителях
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.