日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle级联查询

發布時間:2023/12/4 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle级联查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在ORACLE 數據庫中有一種方法可以實現級聯查詢 select ?*??????????????? //要查詢的字段 from table????????????? //具有子接點ID與父接點ID的表? start with selfid=id????? //給定一個startid(字段名為子接點ID,及開始的ID號) connect by prior selfid=parentid?????? //聯接條件為子接點等于父接點 這個SQL主要用于級聯查詢,給一個父接點可以查出所有的子接點。及子接點的子接點,一查到底,很實用。 例:航班表airline,如何用sql語句查詢出從廣州出發能到達的所有目的地,允許任意中轉。 FLIGHTNO?ORIGIN??DESTINATION
-------------------------------------------
cz3001??CAN??CSX
cz3002??CAN??SHA
cz3003??CSX??SHA
cz3004??CSX??PEK
cz3005??SHA??XIY
cz3006??SHA??SWA
cz3007??PEK??URC
cz3008??PVC??AMS
cz3009??WUH??PVC
cz3010??WUH??XIY 這里根就是CAN,SQL語句如下: select?t.destination?from?airline?t?start with?origin='CAN'?connect by prior?destination?=?origin; 查詢結果:
DESTINATION
-------------------
CSX??
SHA??
XIY??
SWA??
PEK??
URC??
SHA??
XIY??
SWA?
9 rows selected. -------------------------------- 在網上看到下面的例子應該更容易理解些,轉載一下: 數據結構如下:
t1
?t11
???? t111
??????? t1111
?t12
???? t121
??????? t1211
?
db數據字段如下:
task_id???????????? task_name???????? t.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; http://roucheng.cnblogs.com/
結果顯示:
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 parentid(屬于頂層的列)=id(子層的列)? start with id =1

http://www.cnblogs.com/roucheng/p/5404594.html

轉載于:https://www.cnblogs.com/roucheng/p/oraclejilian.html

總結

以上是生活随笔為你收集整理的Oracle级联查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。