【发布时间】:2019-10-14 15:54:04
【问题描述】:
传统的左连接返回左表中的所有记录,包括匹配的记录:
我想用join排除匹配的记录,只返回左表不匹配的记录:
如下所示,是我目前想出的代码。
它使用WHERE 子句来清除匹配的记录——但这感觉有点不对。
这是最好的方法吗?或者有没有更好的独占加入方式?
SELECT L.col1 ,
L.col2 ,
FROM leftTable L
LEFT JOIN rightTable R ON R.col1 = L.col1
WHERE R.id IS NULL ;
【问题讨论】:
-
这是一个常见问题解答。在考虑发布之前,请始终使用谷歌搜索您的错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有或没有您的特定字符串/名称和站点:stackoverflow.com 和标签,并阅读许多答案。如果您发布问题,请使用一个短语作为标题。请参阅How to Ask 和投票箭头鼠标悬停文本。 PS“左连接返回左表中的所有记录”这很糟糕,但很典型,因为左连接返回包含两个输入列的行。您试图说一些涉及左输入行是返回行的子行的内容。
标签: sql sql-server join left-join sql-server-2017