1

こんにちは、ここで立ち往生しています。アドバイスが必要です。複数のDBを持つサーバーがあります。1 db の 1 つのテーブルのデータが同じテーブル名の別の db のデータと等しいかどうかをマップしたい

誰かがそれを行う方法を提案できますか?? 事前に感謝します

4

2 に答える 2

1
select * from db1.table1 t1
full outer join db2.table2 t2 on t1.id = t2.id
where t1.id <> t2.id
or t1.col2 <> t2.col2 or ...
于 2012-05-03T10:48:06.757 に答える
0

何をマッピングする必要があるかによって異なります。主キーによる違いだけを知りたい場合は、PK で完全結合を試みると、A には存在するが B には存在しないレコードと、B には存在するが A には存在しないレコードが表示されます。次のように:

create table DB_A(id int)
create table DB_B(id int)

insert into DB_A values (1)
insert into DB_A values (2)

insert into DB_B values (2)
insert into DB_B values (3)

select DB_A.ID as 'Exists on A but not on B', DB_B.id as  'Exists on B but not on A'
from DB_A full join DB_B on DB_A.id=DB_B.id 
where DB_A.id is null or DB_B.id is null  

すべての列の値を比較するなど、それ以上のことが必要な場合は、データ比較ツールを使用することをお勧めします。SQLだけを使用してそれを行うのはそれほど簡単ではありません

于 2012-05-03T10:56:31.640 に答える