获取表JOIN中所有字段不完全匹配的所有记录

时间:2012-04-25 13:19:04

标签: sql database tsql

我有一种情况,我用一些第三方实用程序更新了一个表,我想将它与原始表进行比较,并确保它正确安装了更新和插入。

所以,我想做这样的事情,但我不太清楚语法:

SELECT * FROM table1 AS a RIGHT OUTER JOIN table2 AS b WHERE 
    <there is some difference between the row from a and the row from b,
    regardless of which column it's in>

如何比较所有字段而不必一个一个地明确地写出它们?

编辑:我还应该提一下,我在表的副本中进行了更新,因此假设是原始版本并且是更新的副本。

1 个答案:

答案 0 :(得分:4)

你应该使用的是一个MINUS查询

select field1, field2, field3, field4
  from table1
 except 
select field1, field2, field3, field4
  from table2

这将返回table1中无法在table2上找到其数据(field1,field2,field3,field4)的所有行。 Warining:它没有相反的方式,所以如果你还需要table2中的数据而不是table1上的数据,那么你必须做第二个查询来做table2 MINUS table1。