Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.07.21;
Скачать: CL | DM;

Вниз

Подскажите с PLSQL   Найти похожие ветки 

 
Demo   (2013-03-01 07:48) [0]

Работаю с деревом. Определять все дочерние узлы главной ветки удалось, вот определить корневой узел по одной из ветки не получается, подскажите как это сделать. Спасибо.


 
Sergey Masloff   (2013-03-01 09:10) [1]

Рубанок взять например ;-)
(по твоему посту хрен поймешь с каким ты деревом работаешь)

Конкретизируй что ты делаешь и как (кратким примером) а то экстрасенсы все в отпуске. Ну попробую конечно угадать... prior с другой стороны приставь в условии


 
O'ShinW ©   (2013-03-01 09:21) [2]

вперед
 select * from subscriber s                  
 start with s.up_id = 1617                
 connect by prior s.id_subscriber = s.up_id  
501 1617 ПАРК РАЗВЛЕЧЕНИЙ "ЛИМПОПО", КАФЕ "СКАЗОЧНЫЙ ОСТРОВ"
502 1617 КАФЕ "ВИНИЛ"  АЛЛО(СТАРОЕ_НАЗВАНИЕ)
1618 1617 КАФЕ "КАРАБАС БАРАБАС"

назад  
 select * from subscriber s                  
 start with s.id_subscriber = 501                
 connect by prior  s.up_id  = s.id_subscriber  
501 1617 ПАРК РАЗВЛЕЧЕНИЙ "ЛИМПОПО", КАФЕ "СКАЗОЧНЫЙ ОСТРОВ"
1617  КИНОТЕАТР "КОЛИЗЕЙ" АВТОИНФОРМАТОР


 
Demo   (2013-03-01 09:22) [3]

Дерево строится по принципу ID и PARENT_ID

ID  PARENT_ID   NAME
1   null              Россия
2   1                 Омская область
3   2                 Омск  

В документах Оракл, множество примеров как вытащить все вытекающие узлы из одного узла. Например вытащить все узлы которые находятся под Россией:

SELECT * FROM MY_TABLE
   CONNECT BY PRIOR ID = PARENT_ID
START WITH ID = 1

Вот только не могу найти пример, как вытащить корневой узел "Россиz", по ID Омска.


 
Demo   (2013-03-01 09:26) [4]

O"ShinW ©   (01.03.13 09:21) [2]

Спасибо, вроде то, что надо.


 
Sergey Masloff   (2013-03-01 10:19) [5]

многие почему-то думают что connect by prior это единая конструкция ;-)

на самом деле можно и так

вперед
select * from subscriber s                  
start with s.up_id = 1617                
connect by prior s.id_subscriber = s.up_id  

назад  
select * from subscriber s                  
start with s.id_subscriber = 501                
connect by s.id_subscriber = prior s.up_id  

о чем большевики и говорили в [1]


 
O'ShinW ©   (2013-03-01 10:50) [6]


> многие почему-то думают что connect by prior это единая
> конструкция ;-)
>
> на самом деле можно и так

Сапсибо, не знал

просто некоторые  не заморачивались запоминать оба варианта,
если можно сплясать от одного :)


 
картман ©   (2013-03-01 14:29) [7]


> O"ShinW ©   (01.03.13 09:21) [2]


> Demo   (01.03.13 09:22) [3]

эх, когда ж сиквел сервер так сможет?



Страницы: 1 вся ветка

Текущий архив: 2013.07.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.008 c
3-1286969311
yurikon
2010-10-13 15:28
2013.07.21
Выделение строки в гриде цветов


2-1353050219
Unknown1
2012-11-16 11:16
2013.07.21
сравнение 2-х TFileStream


4-1264756803
Handbrake
2010-01-29 12:20
2013.07.21
Вопрос по memory mapped files


15-1362175842
Иксик
2013-03-02 02:10
2013.07.21
Проблема с жестким диском. Может у кого есть какие-нибудь идеи...


2-1353673766
AntonMos
2012-11-23 16:29
2013.07.21
daysbetween