Рекурсивный запрос, возможно ли?

kiruxa_dnp

Новичок
Рекурсивный запрос, возможно ли?

Доброго дня

не пиннайте плиз.... В СКЛ я начинающий.... понимаю что вопрос детский, но...

у меня есть такая структура базы


id parent_id description active
1 0 val1 1
2 1 val2 1
3 1 val3 1
4 2 val4 1
5 4 val3 1

вот мне надо зная ИД родителя выбрать все его дочерние элементы....
подскажите плиз как это сделать... буду благодарен
 

Фанат

oncle terrible
Команда форума
рекурсивный запрос нельзя сделать,а код на пхп, который рекурсивно получает детей - вполне.
 

Alexandre

PHPПенсионер
рекурсивный запрос нельзя сделать,а код на пхп, который рекурсивно получает детей - вполне.
можно написать хранимую процедуру, которая выдаст всех детей. 5й мускуль установлен почти везде.
 

kiruxa_dnp

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

может какието вложеные запросы ?

я видел в стандартном SQL есть WITH который решает это дело

http://msdn2.microsoft.com/ru-ru/library/ms186243.aspx
типа вот этого
 

Фанат

oncle terrible
Команда форума
не будет ресурсоемко. сколько у тебя детей? тысяча?
 

kiruxa_dnp

Новичок
у меня PHP version 5.2.3
MySQL version 4.1.22-standard
это то что дают клиенты

-~{}~ 17.12.07 16:13:

да порядки такие
могут быть вложения до 2000 ... и делать такую гору запросов не особо правильно
 

Фанат

oncle terrible
Команда форума
тогда стоит подумать о другой структуре таблицы.
если уровней вложенности может быть до 2000.
 

Pigmeich

Новичок
kiruxa_dnp
А надо ли тебе знать всех детей и внуков сразу?

Попробуй обойтись 2 типами запросов:
1. Выбрать всех детей (без внуков).
2. Выбрать всех (можно потом красиво отсортировать).

Еще вариант - ввести индекс: папа пусть "10", сын - "101", дочь - "102", внук - "1021".

Совместив с первым солюшеном можно сортировать прямо в запросе и без извращений.
 

kiruxa_dnp

Новичок
по поводу структуры
есть какие-то альтернативы?

помоему структура самая простая что может быть...
ид, ид_родителя, название...

-~{}~ 17.12.07 16:26:

Автор оригинала: Pigmeich
А надо ли тебе знать всех детей и внуков сразу?.
- да это надо -

именно что вся проблема в этом, что надо вятянуть всю ветку целиком.
 

Фанат

oncle terrible
Команда форума
разумеется - самая простая структура.
Но задача-то у тебя не самая простая?

в mysql нет with и нет connect by
 

kiruxa_dnp

Новичок
если не будет варианта, то будет куча запросов ... :(

хочеться же по человечески сделать...
 

MiksIr

miksir@home:~$
Вообще, имхо, человека нада сначала направить покурить про деревья и методы их реализации в DB. Обсосанная тема же.
 
Сверху