1. 程式人生 > >ORACLE資料庫的級聯查詢

ORACLE資料庫的級聯查詢

背景描述

存在一張表資訊如下:

titlefather
水果top
蘋果水果
荔枝水果
香蕉水果
電器top
冰箱電器
洗衣機電器
電視電器
西瓜水果

資料庫儲存的資料為無序的,需求描述為按照水果--屬於水果的二級--電器--資料電器的二級方式進行資料排序

解決方案

SQL > select * from wen start with father='top' connect by prior title=father;

查詢輸出結果

水果    top
蘋果    水果
荔枝    水果
西瓜    水果
香蕉    水果
電器    top
冰箱    電器
洗衣機    電器
電視    電器

SQL解析

查詢某條資料下是否存在子節點

select *          //要查詢的欄位from table      //具有子接點id和父接點id的表start with faterid=id資料           //給定一個開始查詢的id(欄位名為父接點id,以及開始的id資料)connect by prior childid= pid    //聯接條件為子接點等於父接點示例如上所示

查詢某條資料下是否有父節點

select *          //要查詢的欄位from table      //具有子接點id和父接點id的表start with childid=id資料          //給定一個開始查詢的id(欄位名為子接點id,以及開始的id資料)
connect by prior childid= pid    //聯接條件為子接點等於父接點

示例:

SQL > select * from wen start with title='香蕉' connect by prior title=father;

查詢結果如下

香蕉   水果