1. 程式人生 > >oracle 樹查詢 根據上級查詢所有下級,根據下級查詢相關上級資料

oracle 樹查詢 根據上級查詢所有下級,根據下級查詢相關上級資料

圖例:假設已經知道安徽省的id為 1218  ,我想查詢安徽省下面所有相關資訊  

----1218 安徽省

----1220  合肥市

----1226   1224  美容店

oracle  sql  這樣寫

select
        * 
    from
        fht_enterprise  start with id = 1218 connect 
    by
        prior id =  parentid

即可查詢到資料如下


這個是根據上級查詢下級 ,其實我們也可以根據下級查詢相關的上級資料

start with 子句:遍歷起始條件,有個小技巧,如果要查父結點,這裡可以用子結點的列,反之亦然。

connect by 子句:連線條件。關鍵詞prior,prior跟父節點列parentid放在一起,就是往父結點方向遍歷;prior跟子結點列subid放在一起,則往葉子結點方向遍歷,     parentid、subid兩列誰放在“=”前都無所謂,關鍵是prior跟誰在一起。

order by 子句:排序,不用多說。