Светлана PHP
Guest
Определение принадлежности в структуре
Есть древовидная структура построенная, скажем на таблице вида:
ID, PID, NAME
где ID - уникальный идентификатор, PID - идентификатор родителя в этой структуре (ID другого, 0 если нет родителя), NAME - что-то второстепенное...
Вопрос:
Допустим эта структура описывает дерево:
(14,0)
(22,14)
(26,22)
(28,22)
(30,28)
(40,30)
Каким образом следует построить SQL запрос, чтобы выяснить, что 40 далёкий потомок 14.
Сейчас это решается на уровне рекурсивной функции, один вызов которой соот-ет одному SQL запросу. А можно ли одним, но сложным запросом? И если можно, то как, и насколько это производительней этой рекурсивной функции.
Спасибо за внимание
Есть древовидная структура построенная, скажем на таблице вида:
ID, PID, NAME
где ID - уникальный идентификатор, PID - идентификатор родителя в этой структуре (ID другого, 0 если нет родителя), NAME - что-то второстепенное...
Вопрос:
Допустим эта структура описывает дерево:
(14,0)
(22,14)
(26,22)
(28,22)
(30,28)
(40,30)
Каким образом следует построить SQL запрос, чтобы выяснить, что 40 далёкий потомок 14.
Сейчас это решается на уровне рекурсивной функции, один вызов которой соот-ет одному SQL запросу. А можно ли одним, но сложным запросом? И если можно, то как, и насколько это производительней этой рекурсивной функции.
Спасибо за внимание