使用oracle遞歸查詢(xún)處理父子關(guān)系記錄
使用oracle遞歸查詢(xún)可以處理父子關(guān)系記錄,下面就為您介紹這種使用oracle遞歸查詢(xún)處理父子關(guān)系記錄的方法,供您參考。
數(shù)據(jù)庫(kù)中常要處理父子關(guān)系的記錄,在oracle中可以用oracle遞歸查詢(xún)語(yǔ)句一次把所有的子記錄全部取出來(lái)。例如下:
t1
t11
t111
t1111
t12
t121
t1211
db數(shù)據(jù)字段如下:
task_id task_name t.parent_task_id ***
*** *** *** ***
000001 t1 *** ***
000002 t11 000001 ***
000005 t12 000001 ***
000003 t111 000002 ***
000004 t1111 000003 ***
000006 t121 000005 ***
000007 t1211 000006 ***
*** *** *** ***
查詢(xún)語(yǔ)句:
select t.task_id ,t.task_name ,t.parent_task_id
from t_task t s
tart with task_id='000001'
connect by prior task_id = parent_task_id;
結(jié)果顯示:
task_id task_name t.parent_task_id
000001 t1
000002 t11 000001
000003 t111 000002
000004 t1111 000003
000005 t12 000001
000006 t121 000005
000007 t1211 000006
strat with 指定層次開(kāi)始的條件,即是說(shuō)滿(mǎn)足這個(gè)條件的行即可以做為層次樹(shù)的最頂層
connect by prior指層之間的關(guān)聯(lián)條件,即什么樣的行是上層行的子行(自連接條件)
select level ,id,name,parentid from temptable2
connect by prior parentid(屬于頂層的列)=id(子層的列) start with id =1
【編輯推薦】
常見(jiàn)的ORACLE數(shù)據(jù)類(lèi)型介紹