【发布时间】:2013-08-20 10:38:04
【问题描述】:
以下查询返回 NO 数据:
select * from ediImport
WHERE glnfact NOT IN (select GLN from Clients)
经过一番搜索,我找到了我想要的数据,这样:
select * from ediImport
WHERE glnfact NOT IN (select GLN from Clients WHERE gln is not null)
但我觉得第一个查询应该返回信息(我认为它会在 Access 中返回)。
所以我的问题:
- 为什么第一个查询不起作用
- 有没有更好、更有效的方法来做到这一点?我找到了 EXISTS 和 ANY,但我看不出比 old school 方式有任何优势。
注意:我不想在这里使用左连接,因为我真正需要的是执行更新:
UPDATE ediImport SET Status = 2
WHERE glnfact NOT IN (select GLN from Clients WHERE gln is not null)
【问题讨论】:
-
@AndreyGordeev:看起来不错。既然你是第一个,请回复一下,我可以把它标记为答案?
-
@iDevlop - 最好将其作为副本关闭??
-
@iDevlop 因为这个问题是重复的,所以不需要回复
标签: sql sql-server tsql sql-server-2008-r2 notin