比较两个表中的每条记录

时间:2010-07-22 19:40:40

标签: sql sql-server tsql sql-server-2008

假设我有两个由单列组成的SQL表,

Table 1               Table 2
a1                    a2
b1                    b2
c1                    c2

是否有一个简洁的SQL命令来比较一个表中的每个记录与另一个表中的每个记录? (如果表1中的任何记录与表2中的任何记录相匹配,则返回true)

if(a1 = a2 OR a1 = b2 OR a1 = c2 OR b1 = a2 OR b1 = b2 ...)

我想要

如果表a中的任何记录与表b匹配(即,在整数表中,它们是相同的int),则返回true。

2 个答案:

答案 0 :(得分:1)

为什么不简单

if exists (select 1 from T1 inner join TB on T1.Col = T2.Col)

答案 1 :(得分:0)

full join非常适合发现差异。要查找任一表中缺少的行:

select  *
from    t1
full join    
        t2
on      t1.col1 = t2.col1
where   t1.col1 is null
        or t2.col1 is null

这假设单列是唯一的(即没有重复值。)