2017-05-30 215 views
1

我有2個表格表示父子關係。根據表B記錄從一個表中選擇記錄

父ID具有T.

這個父ID的下一個狀態

enter image description here

select Child_id from table B where parent_id ='2'; 

的孩子記錄總數是7。

以及這7條記錄中,其中一條是3條子記錄的父條。

我需要一些幫助來編寫一個查詢,它應該返回給定parent_id的所有子記錄 ,這樣子例子中的子記錄總數將是(7-1)+ 3 = 9;

here is what I have tried already. 
--this gives me the 7 child records 
select distinct Child_id from table B 
where parent_id in(
select parent_id from Table A where status = 'T' 
and A.parent_id = B.parent_id 
and A.parent_id ='2'); 
+0

我刪除了不兼容的數據庫標籤。 –

回答

0

您可以使用UNION查詢合併兩個水平(假設只有2個級別),例如:

SELECT b.child_id 
FROM tableB b JOIN tableA a ON b.parent_id = a.parent_id 
WHERE a.status = 'T' 

UNION 

SELECT b.child_id 
FROM tableB b JOIN tableB b1 ON b.parent_id = b1.child_id 
JOIN tableA a ON b1.parent_id = a.parent_id 
WHERE a.status = 'T' 
相關問題