如何比较一个表的列与另一个表的列?

时间:2013-07-18 07:25:46

标签: sql sql-server

我目前正在合并两个表,我正在尝试验证两列中是否有任何重复项。我想我正在寻找一个查询,让我比较列的每个值,就像:

WHERE 'column1' = 'value1' 

但是代替'value1',它将是'column2'

WHERE 'column1' = 'column2'

还有一些函数可以计算任何重复项。

有谁知道是否有这样的功能?到目前为止,我已经制定了空白。

干杯!

无所谓 - 昨天我似乎没有任何问题。谢谢你让我的思绪呼呼。当我得到一些输出时,我会用结果更新。

4 个答案:

答案 0 :(得分:1)

使用类似的东西:

SELECT *
FROM TABLE A INNER JOIN TABLE B ON (//Whatever condition you need)
WHERE A.column1=B.column2

答案 1 :(得分:0)

你可以尝试两种方法,但我更喜欢第一个例子

select count(*)   
from table1 as t1   
inner join table2 as t2   
on (values you need to compare)  

select count(*)   
(  
from select *   
from table1 as t1   
where column is exists(select * from table2 as t2 on (values you need to compare))  
) as table  

答案 2 :(得分:0)

您可能需要查看INTERSECTEXCEPT

SELECT column1
FROM table1
INTERSECT
SELECT column2
FROM table2

这将为您提供所有相同的结果

请参阅:http://msdn.microsoft.com/en-us/library/ms188055.aspx

答案 3 :(得分:0)

我会使用FULL OUTER JOIN来比较两个表

SELECT A.column1, B.column1
 FROM table1 A 
FULL OUTER JOIN table2 B
ON A.column1=B.column1

这将为您提供表格上的所有结果,但会显示空值,而不是另一个。