[英]Oracle Hierarchical Query - Get records in hierarchy where children are in a list
我有一張帶有父子關系的表。 在另一個表上,我有一個成員列表,這些成員是第一個表中的葉子。
我想要做的是讓第一個表由第二個表中成員的父成員或第二個表的成員過濾。 我希望我的問題很清楚,如果沒有請詢問。
數據庫是Oracle 10g。
假設您在表TH
具有此層次結構,在成員表TM
有三行“GC Carl”、“PT Mike”、“PT Mary”(標記為綠色)。
要找到他們所有的父母、祖父母等(標記為黃色),您需要這個簡單的分層查詢:
select distinct id
from th
connect by id = prior pid
start with id in (select id from tm)
如果您只尋找父母並且您需要以分層方式進行,那么:
select distinct id
from th
connect by id = prior pid and level <= 2
start with id in (select id from tm)
(馬丁被淘汰了,因為他不是任何成員的父母,而且他不在TM
)。
如果這不是您想要的,您絕對應該精確查詢,添加示例輸入數據和所需的輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.