2

サードパーティのユーティリティを使用して 1 つのテーブルを更新した状況があり、それを元のテーブルと比較して、更新と挿入が正しくマウントされていることを確認したいと考えています。

だから、私はこのようなことをしたいのですが、構文がよくわかりません:

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 つずつ明示的に書き込むことなく、すべてのフィールドを比較するにはどうすればよいですか?

編集:テーブルのコピーで更新を行ったことにも言及する必要があるため、 が元であり、更新されたコピーであると想定します。

4

1 に答える 1

4

使用する必要があるのは MINUS クエリです

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

これにより、データ (field1、field2、field3、field4) が table2 で見つからない table1 のすべての行が返されます。警告: その逆ではないため、table1 ではなく table2 にあるデータも必要な場合は、table2 MINUS table1 を実行する 2 番目のクエリを実行する必要があります。

于 2012-04-25T13:25:17.030 に答える