在mysql

时间:2015-12-04 16:50:01

标签: mysql sql

我有一个带有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

2 个答案:

答案 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;