MySQL查询以查找不在列表中的表中的ID

时间:2019-04-02 11:43:36

标签: mysql sql

我有一个约1000个ID的列表,其中只有几个ID不在表中。我需要从列表中获取不在表中的ID。 我无权创建表或将数据插入该表。

create table t1(id int);
insert into t1 values (1),(2),(3),(4),(5),(6),(7);

现在,我需要获取不在表中但在where子句中的ID的详细信息。

where clause - id in (2,5,8,9,25)

我的输出应该是8,9,25

1 个答案:

答案 0 :(得分:4)

不要将它们放在where子句中。使用具有left join或类似结构的派生表:

select i.id
from (select 2 as id union all
      select 5 as id union all
      select 8 as id union all
      select 9 as id union all
      select 25 as id
     ) i
where not exists (select 1 from t1 where t1.id = i.id);