Вопрос по деревьям - запрос выборки
Добавлено: 24 май 2006, 17:11
Уважаемые.
Прочитал статью "Деревья в SQL".
В статье описана рекурсивная процедура, возвращающая для родительского узла все его дочерниеузлы.
Таким образо, что бы выбрать из таблицы эти узлы пишем запрос:
Появилась проблема следующего характера:
Как быбрать из всей таблицы узлы, наоборот, не принадлежащие это узлу (:ID)???
Сейчас написал так:
Очевидно, что такой запрос является гипер-медленным.
Может у кого есть идея, как оптимизировать данный запрос?
Заранее благодарен.
Прочитал статью "Деревья в SQL".
В статье описана рекурсивная процедура, возвращающая для родительского узла все его дочерниеузлы.
Таким образо, что бы выбрать из таблицы эти узлы пишем запрос:
Код: Выделить всё
select A.* from MYTABLE A
join MYTABLE_CHILD(:ID,1) AC on A.ID=AC.ID
Как быбрать из всей таблицы узлы, наоборот, не принадлежащие это узлу (:ID)???
Сейчас написал так:
Код: Выделить всё
select A.* from MYTABLE A
where not A.ID in
(select AC.ID from MYTABLE_CHILD(:ID,1) AC)
Может у кого есть идея, как оптимизировать данный запрос?
Заранее благодарен.