如何获取表中不存在的ID?

时间:2019-04-09 07:55:08

标签: sqlite

我有一个ID列表,我想找回没有出现在表中任何行中的ID列表。

例如,这是我的桌子:

item_id | text
--------|-------
1       | one
2       | two
3       | three

例如,如果我的ID列表是 1、2、4和5 ,我想返回 4和5 ,因为这两个都不是' t在表中。知道怎么做吗?

1 个答案:

答案 0 :(得分:1)

如果您的外部ID列表未存储在数据库中,则可以通过将所有外部ID串联到一个用括号括起来的逗号分隔值列表中(以将ID放入单独的行中)来构造这样的查询: / p>

with 
  cte as (
    -- construct list of outside values in brackets here
    select [] as Outside_Id from (values (1),(2),(4),(5))
  ) 
select Outside_Id as UnusedId
from cte
where Outside_Id not in (select Item_id from ItemTable)

这对于没有太多外部ID有用。

如果表OutsideIdTable中有外部ID,则可以使用

select Outside_Id as UnusedId
from OutsideIdTable
where Outside_Id not in (select Item_id from ItemTable)