如何解决如何使用join编写“ not in” sql查询
|| 可以请一些人提供如何使用联接编写以下sql查询的方法。我不希望尽量不要使用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
解决方法
本文:
NOT IN与NOT EXISTS与LEFT JOIN / IS NULL:SQL Server
如果您感兴趣的话。
简而言之,此查询:
SELECT d1.short_code
FROM domain1 d1
LEFT JOIN
domain2 d2
ON d2.short_code = d1.short_code
WHERE d2.short_code IS NULL
可以工作,但效率不如NOT NULL
(或NOT EXISTS
)。
您还可以使用以下命令:
SELECT short_code
FROM domain1
EXCEPT
SELECT short_code
FROM domain2
这既不使用ѭ5也不使用WHERE
(甚至不使用联接!),但这将删除ѭ7will上的所有重复项(如果有)。
,SELECT d1.Short_Code
FROM domain1 d1
LEFT JOIN domain2 d2
ON d1.Short_Code = d2.Short_Code
WHERE d2.Short_Code IS NULL
,在这种情况下,我会选择3英镑。
SELECT D1.ShortCode
FROM Domain1 D1
WHERE NOT EXISTS
(SELECT \'X\'
FROM Domain2 D2
WHERE D2.ShortCode = D1.ShortCode
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。