2010-02-23 161 views
1

我有如下2個表(顯示樣本數據):簡單的遞歸查詢

TableName: A 
ID    Type 
1 Bug 
2 Requirement 
3 Task 
4 Specification 
5 Bug 
6 Specification 
7 Production Issue 
8 Production Issue 
9 Bug 
10   Task 

Tablename: B 
ID RelatedID 
1 2 
1 7 
5 8 
5 4 
9 6 
9 10 

我想獲取所有具有至少一種相關的生產問題,或者說有沒有相關的生產問題,錯誤的bug。

預計產量將如圖6-8所示(因爲這些都是與至少一個相關的生產問題上的錯誤)

output 
1 
5 
+0

也不是很清楚的方式你正在尋找,也許包括您的預期產出的例子? – Sparky 2010-02-23 21:29:51

+0

我會優化你的表如何連接在一起,因爲它現在不是很清楚,什麼是相關的ID,爲什麼表b的主鍵重複,而不是自動遞增? – Jimmy 2010-02-23 21:34:04

+0

這只是一個連接,它不以任何方式遞歸。如果你想枚舉*所有*直接和間接相關的問題,那*將是遞歸的。 – Aaronaught 2010-02-23 21:40:26

回答

1

別名是去這裏

SELECT pri.Type AS 'Primary Type', rel.Type AS 'Related Type' 
FROM A AS pri 
    INNER JOIN B ON B.ID = pri.ID 
    INNER JOIN A AS rel ON B.RelatedID = rel.ID 
WHERE pri.Type = 'Bug' AND rel.Type = 'Production Issue;