SQL Server:如何通过各种列进行内部连接

时间:2015-09-05 07:08:15

标签: sql-server tsql

我有两个表,Table1Table2,共享4个名为C1, C2, C3 and C4的列;这些列存储1到56的数字序列;此外,一行中可能没有重复的数字,并且数字总是从最低到最高。

示例:

表1

C1 C2 C3 C4
 1  6 10 44
 5  7 23 50
45 46 52 56

现在我必须检查两个表中出现的序列,而不是四列上的连接

select * 
from table1 a 
inner join table 2 on a.c1 = b.c1 and a.c2 = b.c2 and a.c3 = b.c3 and a.c4 = b.c4

还有另外一种方法吗?

1 个答案:

答案 0 :(得分:3)

是的,有一种不同的方式,使用INTERSECT

SELECT c1, c2, c3, c4
FROM table1
INTERSECT
SELECT c1, c2, c3, c4
FROM table2

注意:这不会告诉您匹配的次数,它会显示表格之间的唯一匹配