資料庫中常要處理父子關係的記錄,在oracle中可以用查詢語句一次把所有的子記錄全部取出來。例如下:
t1t11
t111
t1111
t12t121
t1211
db資料字段如下:
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 ***
*** *** *** ***
查詢語句:
select t.task_id ,t.task_name ,t.parent_task_id
from t_task t
start with task_id='000001'
connect by prior task_id = parent_task_id;
結果顯示:
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 指定層次開始的條件,即是說滿足這個條件的行即可以做為層次樹的最頂層
connect by prior指層之間的關聯條件,即什麼樣的行是上層行的子行(自連線條件)
select level ,id,name,parentid from temptable2
connect by prior parentid(屬於頂層的列)=id(子層的列) start with id =1
oracle遞迴查詢,修改及刪除父子關係
資料庫中常要處理父子關係的記錄,在oracle中可以用查詢語句一次把所有的子記錄全部取出來。例如下 t1t11 t111 t1111 t12t121 t1211 db資料字段如下 task id task name parent task id 000001 t1 000002 t11 000001...
不用遞迴來查詢父子關係
static void main string args 注意這裡的employee型別空陣列,不要寫成e5.employeecollection null,否則演算法有問題 employee e55 new employee e55.salary 2 e55.employeecollection ...
遞迴查詢具有父子關係的表
案例描述 一張表 r 有欄位m,p 其中欄位m的值可以出現在字段p中,欄位p的值也可以出現在m中,根據指定欄位p的值,查詢欄位m的值集,然後將字段m的值集作為欄位p的值進行遞迴查詢,直到結果集大小為0。下面是乙個簡單的表 r 結構示例圖 看到上面的表結構,讓人很容易想到樹形結構,不過上圖並不是乙個嚴...