2012-03-06 22 views
0

同じ構造のテーブルが2つあります。同じ構造の2つのテーブルを比較するにはどうすればよいですか?

TABLE-1 
-------- 
ID NAME 
1 AAAA 
2 BBBB 
3 CCCC 
4 DDDD 

TABLE-2 
-------- 
ID NAME 
1 AAAA 
2 BBBB 
3 CCCC 
4 DDDD 
5 eeee 
6 ffff 
7 gggg 
8 hhhh 
9 iiii 

この表をMySQLと比較し、表1のTABLE-2の不一致行を追加する方法を教えてください。

+0

これらは同じデータベースにありますか?彼らはあなたがレプリケーションを考慮していないので、なぜですか? – Stainedart

+0

2番目の表は、最初の表の代替です。 2番目のテーブルはテキストファイルからロードされ、ファイルのスクロールには時間がかかります。 2番目のテーブルは一時的なもので、最初に更新されます。あなたが私を理解してくれるといいなあ – dido

+0

次に、私が下に提供した挿入文が機能するはずです。これは、IDがテーブル2にあり、テーブル1には存在しないすべての行を追加します – Stainedart

答えて

1

Insert into table-1 (select id,name from table-2 where id not in (select id from table-1));

1

IDのいずれか、NAMEが一意のキーとして定義されているか、彼らは、重複した列がキーになりますしている場合(例えばprimary key (ID, NAME)を)次に、その可能INSERT IGONRE .. SELECT

INSERT IGNORE INTO TABLE1 SELECT * FROM TABLE2 

を利用するユニークな組み合わせた場合私たちが使用しているときに挿入中に無視されるINSERT IGNORE

0

私は答えを見つける。 このコードは正しく動作し、一致しない行を返す。

SELECT * FROM TABLE-1 
WHERE TABLE-1.ID 
NOT IN (
SELECT TABLE-2.ID 
FROM TABLE-2 
WHERE TABLE-2.ID=TABLE-1.ID 
) 
関連する問題