Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.07.21;
Скачать: [xml.tar.bz2];

Вниз

Подскажите с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.002 c
15-1362228850
xayam
2013-03-02 16:54
2013.07.21
Поделитесь опытом


2-1353827595
ДенисПФ
2012-11-25 11:13
2013.07.21
Packed Record to MemoryStream


15-1362136963
Nestor
2013-03-01 15:22
2013.07.21
Как определить, содержит ли окно рендер игры?


15-1362109704
Demo
2013-03-01 07:48
2013.07.21
Подскажите с PLSQL


2-1353780441
Tcount
2012-11-24 22:07
2013.07.21
Какой браузер по умолчанию, User-Agent.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский