Sql 在数据库表中查找不在列表中的键
在sybase上。我有一大堆主键 如果我这样做: 从输入的表中选择键(…大约2000个键的列表…) 我得到大约1700个结果。在我的列表中,哪种最简单的方法可以获得约300个不存在的条目的列表 这似乎是件很容易的事,但我无法解决 编辑:似乎一个例子可能是正确的Sql 在数据库表中查找不在列表中的键,sql,sybase,Sql,Sybase,在sybase上。我有一大堆主键 如果我这样做: 从输入的表中选择键(…大约2000个键的列表…) 我得到大约1700个结果。在我的列表中,哪种最简单的方法可以获得约300个不存在的条目的列表 这似乎是件很容易的事,但我无法解决 编辑:似乎一个例子可能是正确的 如果我的表有键1,2,4,而我的列表是1,2,3,那么我需要一个查询,该查询将给出答案3-我列表中不在表中的元素。如果我使用'NOT IN',那么我得到的答案是4,这是错误的。我认为您需要将元素放入它们自己的表中,以使它们可以选择。从那以
如果我的表有键1,2,4,而我的列表是1,2,3,那么我需要一个查询,该查询将给出答案3-我列表中不在表中的元素。如果我使用'NOT IN',那么我得到的答案是4,这是错误的。我认为您需要将元素放入它们自己的表中,以使它们可以选择。从那以后就一帆风顺了
SELECT key
FROM my_new_table
WHERE key NOT IN (SELECT key
FROM Table);
(或上述查询的任何更快版本)。我认为您的答案实际上已由@BrianHooper solution解决,但您的问题缺乏澄清 你提到了一个数字列表。。。连续或不连续不适用。在回应我的评论时,你从未说过你有两张桌子 因此,它的出现仅仅是为了方便以下操作:您有一个包含2000项的主库存表。此外,您还有一个销售活动表,其中列出了曾经销售过的所有库存。。。此表中可能有10000行,其中包括多个给定项目的多个销售。。。然而,有些商品在10000次销售中从未售出。您想知道哪些商品在2000年的库存中从未售出 我的查询将基于上述场景,但您必须与实际场景配对
select
MyItemID
from
MyInventoryTable
where
MyItemID NOT IN
( select SoldItemID
from SalesData );
sybase支持这个吗?从键不在的表中选择键(…大约2000个键的列表…)您想要列表中不在表中的键,还是表中不在列表中的键?前者。我编辑过。为了澄清其他人可能遗漏了什么。。。假设您的表的范围为1-10,记录ID为1、2、5、6、7、9。。。。您需要缺少ID的列表,例如3、4、8、10。。。正确吗?否-不能保证表中的键是连续的。基本上我有两个集合-一个由ID列表组成,一个由DB中一列的内容组成。我想知道我列表中的哪个id不在db列+1中:考虑到澄清,这几乎肯定是最好的解决方法。对于2000个项目(或更多),可能最好将它们全部放在一个表中(无论是临时的还是永久的)。