我有一个MySQL表,看起来像这样:
+----+
| id |
+----+
| a |
| c |
| e |
+----+
我想检查表格中不存在以下哪个a
,b
,c
,d
,e
。
意思是,我希望得到一份ID b
和d
的列表。
我是否可以手动构建一个查询,返回我的表中不存在的ID列表,而不实际创建新的第二个永久SQL表?
答案 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);
如果列表已经在表中,那么您可以使用该表(或子查询)而不是派生表。