Start With (樹查詢)


問題描述:

在數據庫中, 有一種比較常見得 設計模式, 層級結構 設計模式, 具體到 Oracle table中, 字段特點如下:

ID, DSC, PID;

三個字段, 分別表示 當前標識的 ID(主鍵), DSC 當前標識的描述, PID 其父級ID, 比較典型的例子 是 國家, 省, 市 這種層級結構;

省份歸屬於國家, 因此 PID 為 國家的 ID, 以此類推;

 

參考路徑: http://blog.csdn.net/weiwenhp/article/details/8218091

條件1: 表示從哪個節點開始查找, 也就是通過條件1 查詢到的數據, 作為后續查詢的起始節點(參數).

當然可以放寬限定條件,如 ID in ('00001', '00011')以取得多個根節點,也就是多棵樹;在連接關系中,除了可以使用列明外,還允許使用列表達式。

如果省略Start With

就默認把所有滿足查詢條件的Tree整個表中的數據從頭到尾遍歷一次,每一個數據做一次根,然后遍歷樹中其他節點信息.

條件2: 是連接條件,其中用PRIOR表示上一條記錄,例如CONNECT BY PRIOR ID = PID,意思就是上一條記錄的ID是本條記錄的PID,即本記錄的父親是上一條記錄。CONNECT BY子句說明每行數據將是按照層次順序檢索,並規定將表中的數據連入樹形結構的關系中。

Prior 在父節點的一側表示, 自底向上查, 在 子節點的一側表示 自上向下查詢;

條件3: 不能用在 Connect By 后, 這里的條件判斷, 等價於 在最后查詢出結果列表之后, 再進行條件篩選; 並非 刪除掉 節點及子節點;

參考來自:https://www.cnblogs.com/zyzdisciple/p/7873584.html 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM