Главная страница
    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.003 c
15-1362175842
Иксик
2013-03-02 02:10
2013.07.21
Проблема с жестким диском. Может у кого есть какие-нибудь идеи...


15-1361888673
xayam
2013-02-26 18:24
2013.07.21
Покер онлайн


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


15-1362294840
TUser
2013-03-03 11:14
2013.07.21
100% тест на русскость ))


3-1291201543
StriderMan
2010-12-01 14:05
2013.07.21
isc_shutinprog





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский