为什么左外连接需要'ON'子句

Chh*_*aal 1 sql syntax join left-join outer-join

据我所知,在两个表之间的左外连接(比如a和b)中,无论右表中行的值如何,都会检索连接左侧表的所有行.那么为什么我们需要一个'ON'子句来指定一个条件,如下所示:

select * from a LEFT OUTER JOIN b on a.some_column1 = b.some_column2;
Run Code Online (Sandbox Code Playgroud)

为什么需要声明"a.some_column1 = b.some_column2".

Mur*_*nik 5

A left join将返回表中的所有行a,并且对于每一行,表中的匹配行b(如果存在) - 如果不存在,则null返回bs 而不是's列.该on子句定义了匹配的完成方式.