2016-10-21 11 views
1

私は現在、テーブル内のデータを変換中です。そのため、古いものと同じ新しいテーブルを作成しましたが空です。2つの同一のテーブルを比較するMySQL

データコンバータを実行しましたが、行数に差があります。

2つのテーブルと異なるすべての行を選択するにはどうすればよいですか(主キーの識別子はすべてのエントリで異なります)。

+0

通常、ソーステーブルの主キー値を持つ一時的な追加列を追加します。 – Gimby

答えて

0
select * from (
SELECT 'Table1',t1.* FROM table1 t1 WHERE 
(t1.id) 
NOT IN (SELECT t2.id FROM table2 t2) 
UNION ALL 
SELECT 'Table2',t2.* FROM table2 t2 WHERE 
(t2.id) 
NOT IN (SELECT t1.id FROM table1 t1))temp order by id; 

詳細な情報を確認する列を追加できます。 これが役立つかどうか試してみてください。

0

これは、t1に存在し、t2に存在しないすべての行を提供します。 ID以外のすべての列を一覧表示します。 (もちろん、これを切り替えてt2に存在するすべての行を得ることができます:-)

select col1, col2, col3, ... from t1 
except 
select col1, col2, col3, ... from t2; 
関連する問題