首页 > 解决方案 > 概念问题:连接键上的非空过滤器左连接是否总是等于内连接?

问题描述

这是一个概念问题。所以我没有任何实际的代码。但这很容易遵循。

让我们留下来自连接 A 和 B 的两个表(Join_1 和 Join_2):

加入_1:

Select *
From A join B on A.id = B.id

加入_2

Select *
From A left join B on A.id = B.id
where B.id is not null

问题:Join_1 是否总是等于 Join_2?您可以考虑任何条件,例如空值、重复项等。

标签: sqljoinleft-joininner-join

解决方案


出于所有实际目的,“是”。

唯一的例外是 if a.idcould be NULL。在这种情况下,第一个版本将过滤掉这些行。第二个将包括他们。


推荐阅读