Помогите организовать запрос

Помогите организовать запрос

Здравствуйте!:)

У меня такой вопрос...
Есть две таблицы:

| category |
-----------------------------
| id | parent_id | name|
-----------------------------
и

| pr_to_cat |
-------------------
| cat_id | pr_id|
-------------------
В первой хранится ид категории и ид родительской категории, во второй товары по категориям.
Так вот сам вопрос: как можно выбрать для категорий с определенным ид родительской категории количество товаров в ней( если это родительская категория, то количество должно включать в себя количество товаров и в подкатегориях)?..
Т.е. интересует как это сделать наилучше, т.е. как это сделать с помомощью большого количества запросов я знаю, а вот как сделать это наиболее правильно(чтобы было меньше запросов к базе и т.д.) нет....:(
 

ForJest

- свежая кровь
Сходи в ИЗБРАННОЕ там есть про деревья - думаю полезного найдешь для себя
 
Читал, но у меня вродебы все попроще, так как только 2 уровня вложенности, т.е.
0
|
|-1
| |
| |-1.1
| |-1.2
|
|-2
| |
| |-2.1
|
|-3
| |-3.1
| |-3.2
|
в таком духе....
 
Да дело в том, что я знаю как вывести это дерево, просто я нахожу общее число элементов для какой либо категории следующим образом:
на примере категории 1, нахожу явлется ли она родителем для кого либо и получаю для кого, соотвественно для каждой дочерней подкатегории нахожу число элементов и складываю все это, но я думаю что так делать не совсем рационально, т.к. много запросов к базе вот и хочу узнать как правильнее..
Про деревья я читал много раз, просто не знаю как это связано с моей проблемой....
Если я не понимаю чего нить, то плз ткните меня лицом в инфу которую нуна посмотреть(почитать, понять и т.д.)

Best regards
 

ForJest

- свежая кровь
http://phpclub.net/talk/showthread.php?s=&threadid=25356
сходи туда.
Попутно хранишь еще cnt_childs и level
при добавлении по всей ветке делаешь cnt_childs + 1
при удалении cnt_childs - 1
Ветка идентифицируется с помощью like. Ненужные уровни убиваются с помощью level < $level.
Вот тебе и вся идея.
В ИЗБРАННОМ толпа ссылок по построению деревьев на SQL. У меня все руки не доходят почитать поэтому впариваю тебе свою проверенную опытом идею - я с её помощью реализовал древовидный форум, где нужно было хранить дату последнего обновления ветки и количество сообщений. Так что думаю тебе подойдет.
 
Сверху