2 つのテーブル (存在する場合はテーブル内の ID、存在しない場合は NULL または空) を簡単に確認できるようにする、巧妙な MySQL スニペットを見つけ出す必要があります。
ユーザーテーブルとレガシーテーブルがあり、手動比較以外では、それらを一緒にテーブルに表示して比較できるようにする方法がわかりません。私が見たいのは、次のようなものです。
+----------------------------+
| user_id | email | uid |
| 14 | me@me.com | 26 |
| 16 | ug@ug.com | NULL |
+----------------------------+
NULL または空の値を含める方法があることは知っていますが、それが何であるかはわかりません。これまでの私の混乱したSQLクエリは次のとおりです。はい、サブセレクト内でサブセレクトを行うのは恐ろしいことです。
select uid from users where mail IN (
select email from legacy_users where id NOT IN (
select sourceid from migrate_map_users
)
);
ここには 3 つのテーブルが含まれますlegacy_users => migrate_map_users => users
。中間は、2 つを結合する単なる m2m です。legacy_users と users の両方に email 列があります。および ID の独自のバージョン。
皆さん、ありがとうございました!