我想查看主列表中的方框列表,但尚未在我们的非现场列表中标记为异地。
Select boxID, boxlocation
From masterList
WHERE boxlocation NOT IN (
Select boxID FROM offsiteList
)
但是,我的2个列表已经损坏,或者我的查询返回了不准确的结果。在我逐行检查列表之前,想要检查这是一个很好的查询......
答案 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
)