Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запрос на получение всех конечных узлов дерева


12 ©   (2010-06-25 15:13:00) 

столбцы Id и Id_Up, таблица T
Oracle, но это наверное не важно

select * from T where Id_Up = :ID
конкретно подчиненые к :ID

select * from T where Id_Up = :ID
union
select * from T where Id_Up in ( select Id from T where Id_Up = :ID)
подчиненные :ID и тем, кто сам подчинен :Id

Не подскажете, как написать, чтоб всегда давал всех подчиненых конкретной ветки?
без функций.


12   (2010-06-25 16:10:00) [1]

блин, мощная штука :)
быстрая, в смысле..


12   (2010-06-25 15:30:00) [2]

спасибо.


Игорь Шевченко   (2010-06-25 15:16:00) [3]


> Oracle, но это наверное не важно


RTFM CONNECT BY, START WITH


12   (2010-06-25 15:15:00) [4]

т.е.

select * from T where Id_Up = :ID
union
select * from T where Id_Up in ( select Id from T where Id_Up = :ID)
union
select * from T where Id_Up in (select Id from T where Id_Up in ( select Id from T where Id_Up = :ID))
union
...
select * from T where Id_Up in (select Id from T ........ where Id_Up in ( select Id from T where Id_Up = :ID))


Наверх

Титульная страница Поиск, карта сайта Написать письмо