Выборка в иерархии

Despod

Новичок
Выборка в иерархии

есть таблица каталог в ней три поля
ID_GROUP/ NAME /ID_PARENTS
Ид группы, наименование группы и указание на то в какой группе находится эта группа.

например выглядит это так:
1.Одежда
***2.Мужская
***---3.Летняя
***---4.Зимняя
***5.Женская
***---6.Летняя
***---7.Зимняя

В таблице лежит так
1/одежда/0
2/мужская/1
3/летняя/2
4/зимняя/2
5/женская/1
6/летняя/5
7/Зимняя/5

К каждой этой группе привязан товар. Требуется при просмотре группы 1. Одежда выбрать все товары которые лежат в самой группе одежда, так и во всех вложеных группах 2.3.4.5.6 и 7.
Вопроса два:
1)можно ли это сделать одним запросом уйдя от рекурсии в PHP?
2)Можно ли собрать все группы которые меня интересуют в массив и передать в условие что то типа
Select * from Table where id in array?
 

prolis

Новичок
если нельзя, но очень хочется
[sql]
select id_group from table_name where name='Одежда'
union
select t1.id_group from table_name t1,
(select id_group from table_name where name='Одежда') t2
where t1.id_parents=t2.id_group
union
select t3.* from table_name t3,
(
select t1.id_group from table_name t1,
(select id_group from table_name where name='Одежда') t2
where t1.id_parents=t2.id_group
) t4
where t3.id_parents=t4.id_group
[/sql]
 

Gorynych

Посетитель PHP-Клуба
/* не сдержался */ бля...

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

а если появится четвертый уровень - еще добавим. Уже четверной вложенный селект будет, да?
 
Сверху