据我所知,在两个表(比如a& b)之间的左外部连接中,无论右侧表中的行中的值是什么,都会检索连接左侧表中的所有行。那么为什么我们需要一个'ON‘子句来指定一个条件,就像这样:
select * from a LEFT OUTER JOIN b on a.some_column1 = b.some_column2;
为什么需要"a.some_column1 = b.some_column2“这句话。
发布于 2018-06-10 01:21:02
left join
将返回表a
中的所有行,并且对于每一行,如果存在表b
中的匹配行,则返回null
s而不是b
的列。on
子句定义如何完成此匹配。
发布于 2018-06-10 02:46:18
on
子句是必需的,因为您要“连接”,并且需要告诉您希望通过哪些列进行连接。否则,您将对所有可能的行组合使用不带任何where
条件的传统from
。但你想加入,对吧?
是的,差不多就是这样。
https://stackoverflow.com/questions/50776756
复制相似问题