2

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

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

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>

我怎样才能比较所有字段而不必一一明确地写出来?

编辑:我还应该提到我在table 的副本中进行了更新,所以假设是原始的并且是更新的副本。

4

1 回答 1

4

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

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

这将返回 table1 中无法在 table2 上找到其数据(field1、field2、field3、field4)的所有行。警告:反之亦然,因此如果您还需要 table2 中而不是 table1 中的数据,那么您必须执行第二个查询,执行 table2 MINUS table1。

于 2012-04-25T13:25:17.030 回答