这是很难描述的。我有两个字段的表:Col1中,与Col2中的以下数据:T-SQL:SQL从单个表中获取相互记录
Col1, Col2
1 10
1 11
1 12
10 1
11 1
13 1
在Col1中的值可以像在col2的外键值。我想查找Col1中给定值的所有行,其中Col2中的值出现在Col1中,但它的Col2值也是给定值。因此,举例来说,如果我要寻找的1 Col1中的值,下面的返回行:
Col1, Col2
1 10
1 11
10 1
11 1
与Col1中设置为13行不会返回,因为它不会在col2的出现,其中Col1中是设置为1
的SQL我创作的作品:
Select T1.*
From Table1 T1
Inner Join Table1 T2 On T1.Col2 = T2.Col1
Where (Exists(Select * From Table1 T3 Where (T2.Col1 = T3.Col1) And (T3.Col2 = T1.Col1)))
And (T1.Col1 = 1)
这将返回行的副本。我总是可以添加DISTINCT关键字,这将删除重复项。我的问题是我的sql是否真的是选择记录的正确方式,以及是否可以在没有DISTINCT关键字的情况下完成。
真棒。谢谢!我知道有一种在连接中使用AND的方式,但不记得如何。 – Polaris431
不客气! – Lucero