我需要比较列表中的项目列表,并确定数据库表中缺少的项目。
例如,如果我的列表中包含以下项目:
Item1
Item2
Item3
Item4
数据库表仅具有:
Item1
Item3
Item4
我希望结果为“项目2”。
这种语法显然是不正确的,但这基本上是我要完成的工作:
SELECT Item
FROM Items
WHERE (Item exists in my list but not in Items.Item)
这是可能做到的吗?或者我需要将一个项目列表放在一个表中以比较两个表吗?我对该数据库没有写访问权,所以无法创建表(我知道)。
答案 0 :(得分:1)
一般方法是left join
,not in
或not exists
:
select my.*
from (values (1), (2), (3), (4)) my(item)
where my.item not in (select i.item from items i.item);
并非所有数据库都支持values
表构造函数,但通常所有数据库都具有某种方法来构造具有常量值的派生表。
答案 1 :(得分:0)
我最终使用了T-SQL: How to Select Values in Value List that are NOT IN the Table?
中的解决方案关于SQL,我是一个新手,因此对我来说更容易理解和适应它。