我有一个带有id的表和一个id列表(1,3,4,5,2,29,24)。我可以通过这样的查询看到该列表中的哪些ID:
select * from tbl1 where id in (1,3,4,5,2,29,24)
但是有没有可能在没有创建临时表的情况下看到tbl1中不存在的id列表中的数字?像
这样的东西select * from tbl1 where (1,3,4,5,2,29,24) not in id
答案 0 :(得分:1)
从tbl1中选择*,其中id不在(1,3,4,5,2,29,24)
中答案 1 :(得分:0)
您可以在查询中使用派生表:
select id
from (select 1 as id union all select 3 union all select 4 union all select 5 union all
select 2 union all select 29 union all select 24
) id
where not exists (select 1 from tbl1 where tbl1.id = id.id);
如果您想查看表中的ID而不是表中的ID,请使用left join
:
select id.id, tbl1.*
from (select 1 as id union all select 3 union all select 4 union all select 5 union all
select 2 union all select 29 union all select 24
) id left join
tbl1
on tbl1.id = id.id;