id, parent_id. Возможен ли запрос который вытащит всех наследников? MySQL

Vano

Новичок
Таблица id | parent_id
1 | 0
2 | 0
3 | 0
4 | 2
5 | 4

Можна ли вытащить всех наследников id - 2, тоесть id 4 и 5. Одним запросом. Без рекурсии в программе.
 

С.

Продвинутый новичок
А одним запросом, но с рекурсией в программе не подойдет?
 

Vano

Новичок
Спасибо, добавлю себе в мозг еще один тип иерархической структуры, но я думал обойтись одной таблицей. Уже нашел - в MySQL таких запросов нету.
 

fixxxer

К.О.
Партнер клуба
В mysql нет рекурсивных запросов. Но если известна максимальная глубина вложенности N, можно сгенерировать запрос, который джойнит таблицу саму на себя N раз.
 

AnrDaemon

Продвинутый новичок
Спасибо, добавлю себе в мозг еще один тип иерархической структуры, но я думал обойтись одной таблицей. Уже нашел - в MySQL таких запросов нету.
Можно обойтись одной таблицей, просто добавив в неё недостающие поля. :)
Конечно, придётся переписать запрос на прямых потомков, добавив depth=0, либо создать для них VIEW, где этот depth=0 уже прописан.
 
Сверху