我需要找出一些巧妙的 MySQL 代码片段,让我可以轻松查看两个表,表中的 id(如果它们存在)或 NULL 或空(如果它们不存在)。
我有一个用户表和一个旧表,在手动比较之外,我不知道如何让它们一起出现在一个表中,以便进行比较。我希望看到的是这样的:
+----------------------------+
| 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
)
);
这里涉及三个表,legacy_users => migrate_map_users => users
. 中间只是连接两者的m2m。legacy_users 和 users 都有一个 email 列。以及他们自己的 id 版本。
谢谢你们!