如何获取(My)SQL表中不存在的ID列表?

时间:2016-11-21 12:32:04

标签: mysql sql select

我有一个MySQL表,看起来像这样:

+----+
| id |
+----+
| a  |
| c  |
| e  |
+----+

我想检查表格中不存在以下哪个abcde

意思是,我希望得到一份ID bd的列表。

我是否可以手动构建一个查询,返回我的表中不存在的ID列表,而不实际创建新的第二个永久SQL表?

1 个答案:

答案 0 :(得分:2)

这通常使用left join或类似的东西来完成:

select ids.id
from (select 'a' as id union all select 'b' union all select 'c' union all
      select 'd' union all select 'e'
     ) ids
where ids.id not in (select id from t);

如果列表已经在表中,那么您可以使用该表(或子查询)而不是派生表。