私は現在、テーブル内のデータを変換中です。そのため、古いものと同じ新しいテーブルを作成しましたが空です。2つの同一のテーブルを比較するMySQL
データコンバータを実行しましたが、行数に差があります。
2つのテーブルと異なるすべての行を選択するにはどうすればよいですか(主キーの識別子はすべてのエントリで異なります)。
私は現在、テーブル内のデータを変換中です。そのため、古いものと同じ新しいテーブルを作成しましたが空です。2つの同一のテーブルを比較するMySQL
データコンバータを実行しましたが、行数に差があります。
2つのテーブルと異なるすべての行を選択するにはどうすればよいですか(主キーの識別子はすべてのエントリで異なります)。
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;
詳細な情報を確認する列を追加できます。 これが役立つかどうか試してみてください。
これは、t1に存在し、t2に存在しないすべての行を提供します。 ID以外のすべての列を一覧表示します。 (もちろん、これを切り替えてt2に存在するすべての行を得ることができます:-)
select col1, col2, col3, ... from t1
except
select col1, col2, col3, ... from t2;
通常、ソーステーブルの主キー値を持つ一時的な追加列を追加します。 – Gimby