oracle遞迴查詢父子關係記錄

2021-08-29 17:43:40 字數 1071 閱讀 6651

資料庫中常要處理父子關係的記錄,在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 結構示例圖 看到上面的表結構,讓人很容易想到樹形結構,不過上圖並不是乙個嚴...