筱公尺加步槍 posted @ 2023年8月18日 23:01 in
[ 資料庫 ] with tags
oracle
樹狀, 950 閱讀
在實際應用中,經常利用資料庫儲存樹狀結構的資料,通常用一張表中的兩個字段表示,乙個是自身的id,乙個是儲存父類的id。在這樣具有這種關係中的資料,要求查出的資料具有我們想要的樹狀顯示。這裡需要引入oracle的乙個查詢語句。
?sql-樹狀查詢
1
2
3
4
select
*
from
tablename
start
with
[condition1]
connect
by
prior
[condition2]
where
[condition3]
condition1 通常是用於篩選某顆樹或者多顆樹的結點,這裡所的樹包括子樹,
condtion2 通常是用於連線父結點和子結點的關係,prior 所表示的是上一條記錄,通常用法:prior id = pid,(上一條的的id號是本條記錄的父類id號)這樣就把整個樹狀結構給建立起來了。
conditon3 就是我們通常的where語句,過濾某些記錄。
現在看下具體例子。
其中test_id 表示本身的id,test_pid表示父類的id
這邊記錄的描述成樹狀結構就是如下:
現在,假設我們查詢的福州以及福州下的所有子東西,就可以這樣查詢,
只要取福州的根結點就可以,福州的根結點翻譯成資料庫中存的資料就是 test_id =1
因此得到的sql如下:
?查詢福州包括福州下的子城市
1
2
3
select
*
from
test_ t
start
with
test_id = 1
connect
by
prior
test_id = test_pid
查詢結果:
用結構圖表示就是如下資訊:
因此想要查詢某些資訊,只要抓住根結點的條件就可以。。over~~
oracle 樹狀查詢
connect by 是結構化查詢中用到的,其基本語法是 select from tablename start with 條件1 connect by 條件2 where 條件3 例 select from table start with org id hbhqfwgwpy connect by...
oracle 樹狀查詢
connect by 是結構化查詢中用到的,其基本語法是 select from tablename start with 條件1 connect by 條件2 where 條件3 例 select from table start with org id hbhqfwgwpy connect by...
oracle 樹狀查詢
connect by 是結構化查詢中用到的,其基本語法是 select from tablename start with 條件1 connect by 條件2 where 條件3 例 select from table start with org id hbhqfwgwpy connect by...