2010-01-29 44 views
1

我有一個簡單的問題,真的讓我難倒了。如何從表中找到遞歸的自加入記錄

我有一個主表的表X中

Table X 
ID 
_________ 
1 
2 
3 
4 
5 

我有表X連接表,允許記錄自加盟。讓我們把這種JoinTableX

JoinTableX 
RecordAID RecordBID 
--------- -------- 
1   2  (So Record 1 from Table X has a link to Record 2 from Table X) 
1   3 
1   4 
2   3 
2   4 
3   1 
3   2 
4   1 
4   2 

那麼,如何寫一個SQL查詢來顯示我的所有的JoinTableX有彼此(例如波夫表X記錄1連接到表X記錄4和重複的依賴記錄表X記錄4與表X記錄1相關聯。

回答

4
select * 
from JoinTableX a 
inner join JoinTableX b on a.RecordAID = b.RecordBID 
    and a.RecordBID = b.RecordAID 
1
(SELECT RecordAID, RecordBID FROM JoinTableX) 
INTERSECT 
(SELECT RecordBID, RecordAID FROM JoinTableX)