SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 23.04.2012 17:38:53

juventine
Участник
Зарегистрирован: 22.04.2012
Сообщений: 4

Как подсчитать количество новостей в дереве?

Добрый день!

Суть такая: есть сайт, на котором есть рубрики и подрубрики. Получается, что мы создает таблицу, в которой рекурсивным ключом будет ссылка на родительскую страницу. Ситуация следующая. У нас есть рубрики: СПОРТ, Политика. В СПОРТ подрубрики: футбол, хоккей, баскетбол. В фуболе подрубрики (Европейский футбол, Белорусский футбол). В Европейском соответственно подрубрики: Италия, ИСПАНИЯ, Англия.

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

Заранее огромное спасибо!

Схема БД представлена.


Прикрепленные файлы:
Attachment Icon МояБД.JPG, Размер: 43,179 байт, Скачано: 320

Неактивен

 

#2 24.04.2012 06:40:20

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: Как подсчитать количество новостей в дереве?

Для произвольного уровня вложенности при такой структуре данных эта задача одним запросом не решается.
Придется обходить все элементы и строить дерево. Код для этого есть, например,  тут - посмотрите, если вдруг нет идей, как это конкретно делать.

Если очень нужно одним запросом - посмотрите в сторону вложенных множеств (nested sets).
Работа с ними позволяет использовать более легкие запросы при выборке данных, но сильно усложняется процедура вставки.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson