oracle遞迴查詢,修改及刪除父子關係

2021-06-07 15:45:47 字數 1836 閱讀 4510

資料庫中常要處理父子關係的記錄,在oracle中可以用查詢語句一次把所有的子記錄全部取出來。例如下:

t1t11

t111

t1111

t12t121

t1211

db資料字段如下:

task_id           task_name         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 id(子層的列)=parentid(屬於頂層的列)  start with id =1

修改父子關係記錄:

update t_task  t set t.task_name = "haha" where t.task_id in (

select tt.task_id from t_task tt start with tt.task_id = '000001' connect by prior tt.task_id = tt.parent_task_id

)刪除父子關係記錄:

delete from t_task where task_id in (select task_id from t_task connect by prior task_id=parentid start with task_id='000001');

oracle 遞迴查詢 Oracle遞迴查詢

1.1 建立表與插入資料 create table district id number 10 not null,parent id number 10 name varchar2 255 byte not null alter table district add constraint distr...

Oracle查詢 增加 刪除 修改主鍵

對oracle表主鍵的操作,有四類 查詢,增加,修改,刪除 1 查詢主鍵 查詢某個表中存在的約束 select from user constraints where table name 表名大寫 查詢結果顯示約束型別,約束名稱,不顯示約束在哪個欄位上 查詢某個表各字段約束 select from...

oracle 逆向遞迴查詢 oracle遞迴查詢

oracle的遞迴查詢 最近在看公司的oa系統,oa系統中基本都會有節點樹,其中對於樹上的資料展示,就是用了資料庫的遞迴查詢,在這裡總結下遞迴查詢。現在存在如下的一棵樹 不會畫樹,將就一下,該樹對應下面建立的表資料。建立如下表 create table dg id number not null,主...