如何写“not in ()”使用join进行sql查询
有人可以提供如何使用连接编写以下 sql 查询吗?我不想使用 not in 以及如果可能的话我也想替换 where 条件。
SELECT d1.Short_Code
FROM domain1 d1
WHERE d1.Short_Code NOT IN (
SELECT d2.Short_Code
FROM Domain2 d2
)
我正在使用 SQL Server 2008
Could some one please provide how to write following sql query using joins. I do not want use not in as well as if possible I would like to replace where condition as well.
SELECT d1.Short_Code
FROM domain1 d1
WHERE d1.Short_Code NOT IN (
SELECT d2.Short_Code
FROM Domain2 d2
)
I am using SQL Server 2008
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
本文:
如果您感兴趣,可能会。
简而言之,此查询:
可以工作,但效率低于
NOT NULL
(或NOT EXISTS
)构造。您还可以使用此方法:
这既不使用
NOT IN
也不使用WHERE
(甚至不使用联接!),但这将删除domain1.short_code< 上的所有重复项/code> 如果有的话。
This article:
may be if interest to you.
In a couple of words, this query:
will work but it is less efficient than a
NOT NULL
(orNOT EXISTS
) construct.You can also use this:
This is using neither
NOT IN
norWHERE
(and even no joins!), but this will remove all duplicates ondomain1.short_code
if any.在这种情况下,我会选择
NOT EXISTS
。I would opt for
NOT EXISTS
in this case.