【问题标题】:How to find recursively self-joined records from a table如何从表中递归地查找自联接记录
【发布时间】:2010-01-29 16:28:44
【问题描述】:

我有一个简单的问题让我很困惑。

我有一个主表 Table 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。

【问题讨论】:

    标签: sql sql-server sql-server-2005


    【解决方案1】:
    select *
    from JoinTableX a
    inner join JoinTableX b on a.RecordAID = b.RecordBID 
        and a.RecordBID = b.RecordAID
    

    【讨论】:

      【解决方案2】:
      (SELECT RecordAID, RecordBID FROM JoinTableX)
      INTERSECT
      (SELECT RecordBID, RecordAID FROM JoinTableX)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多