簡體   English   中英

使用查詢的子級父級關系表中的最高父級

[英]Topmost parent in a child parent relationship table using query

我有一個有父子關系的表:

Parent_id Child_id
1 2
1 5
2 3
2 4
5 6
7 4
7 8 
8 6

關系是孩子和直系父母之間的關系。

一個孩子可以有多個父母,例如4是2和7的孩子

如何使用sql查詢找到孩子的最高父級?

示例:對於3,答案必須為1

對於4,答案可以是1或7。為簡單起見,假設我必須返回最小的一個,即1

對於5,答案是1(因為1沒有父母,所以它將被認為是最高的)

我正在使用DB2(10.5),但是一般的sql查詢會給我這個想法。

db2中的一種可能性(不適用於MySQL)

SELECT CHILD_ID, min(ROOT) as ROOT FROM (         
  SELECT CONNECT_BY_ROOT PARENT_ID AS ROOT, f1.* 
  FROM YOURTABLE f1                       
  CONNECT BY NOCYCLE PRIOR CHILD_ID=PARENT_ID     
) tmp                                         
group by CHILD_ID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM