SQL在列表中查找数据库中没有记录的项



我需要比较列表中的项目列表,并确定数据库表中缺少的项目。

例如,如果我的列表包含以下项目:

Item1
Item2
Item3
Item4

而数据库表只有:

Item1
Item3
Item4

我希望结果是"项目2"。

这个语法显然不正确,但这基本上就是我想要实现的:

SELECT Item
FROM Items
WHERE (Item exists in my list but not in Items.Item)

可以这样做吗?或者我需要在一个表中列出项目列表来比较两个表吗?我没有对此数据库的写访问权限,因此无法创建表(据我所知(。

一般方法是left joinnot innot exists:

select my.*
from (values (1), (2), (3), (4)) my(item)
where my.item not in (select i.item from items i.item);

并非所有数据库都支持values表构造函数,但所有数据库通常都有一些方法来构造具有常数值的派生表。

我最终使用了T-SQL中的解决方案:如何在值列表中选择不在表中的值?

在SQL方面,我还是个新手,所以这对我来说更容易理解并适应我的需求。

相关内容

  • 没有找到相关文章

最新更新