是否可以使用Not In With This Query

时间:2014-12-12 19:34:58

标签: sql-server tsql

我想查看主列表中的方框列表,但尚未在我们的非现场列表中标记为异地。

Select boxID, boxlocation
From masterList
WHERE boxlocation NOT IN (
                           Select boxID FROM offsiteList
                         )

但是,我的2个列表已经损坏,或者我的查询返回了不准确的结果。在我逐行检查列表之前,想要检查这是一个很好的查询......

3 个答案:

答案 0 :(得分:5)

我怀疑你在错误的字段上过滤;大概boxID是匹配每个表中记录的字段;所以你要比较的那个。

Select boxID, boxlocation
From masterList
WHERE boxID NOT IN 
(
    Select boxID 
    FROM offsiteList
)

此外,如果offsiteList.boxID列具有空值,则NOT IN谓词将无法按预期工作。您将需要过滤掉子查询中的空值:

Select boxID, boxlocation
From masterList
WHERE boxID NOT IN 
(
    Select boxID 
    FROM offsiteList
    WHERE boxID IS NOT NULL
)

答案 1 :(得分:1)

请学习"存在"并且"不存在"对于任何非特别查询。 请。

    Select boxID, boxlocation
    From masterList ml

    where not exists
    (select null

 from offsiteList innerQueryOSL where innerQueryOSL.boxID = ml.boxID )

答案 2 :(得分:-3)

使用不是EXISTS而不是NOT IN:

Select boxID, boxlocation
From masterList
WHERE NOT EXISTS (
                           Select boxID FROM offsiteList
                         )