我需要比较列表中的项目列表并确定数据库表中缺少的项目。
例如,如果我的列表包含以下项目:
Item1
Item2
Item3
Item4
数据库表只有:
Item1
Item3
Item4
我希望结果为“Item 2”。
这种语法显然不正确,但这基本上是我想要完成的任务:
SELECT Item
FROM Items
WHERE (Item exists in my list but not in Items.Item)
这可以做到吗?或者我是否需要将我的项目列表放在表中来比较两个表?我没有对此数据库的写入权限,因此无法创建表(据我所知)。
最佳答案
一般方法是左连接
、不在
或不存在
:
select my.*
from (values (1), (2), (3), (4)) my(item)
where my.item not in (select i.item from items i.item);
并非所有数据库都支持values
表构造函数,但所有数据库通常都有一些方法来构造具有常量值的派生表。
关于SQL 查找列表中数据库中没有记录的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51564678/