Sql 在数据库表中查找不在列表中的键

Sql 在数据库表中查找不在列表中的键,sql,sybase,Sql,Sybase,在sybase上。我有一大堆主键 如果我这样做: 从输入的表中选择键(…大约2000个键的列表…) 我得到大约1700个结果。在我的列表中,哪种最简单的方法可以获得约300个不存在的条目的列表 这似乎是件很容易的事,但我无法解决 编辑:似乎一个例子可能是正确的 如果我的表有键1,2,4,而我的列表是1,2,3,那么我需要一个查询,该查询将给出答案3-我列表中不在表中的元素。如果我使用'NOT IN',那么我得到的答案是4,这是错误的。我认为您需要将元素放入它们自己的表中,以使它们可以选择。从那以

在sybase上。我有一大堆主键

如果我这样做:

从输入的表中选择键(…大约2000个键的列表…)

我得到大约1700个结果。在我的列表中,哪种最简单的方法可以获得约300个不存在的条目的列表

这似乎是件很容易的事,但我无法解决

编辑:似乎一个例子可能是正确的


如果我的表有键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个项目(或更多),可能最好将它们全部放在一个表中(无论是临时的还是永久的)。