据我所知,在两个表(比如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中的匹配行,则返回nulls而不是b的列。on子句定义如何完成此匹配。
发布于 2018-06-10 02:46:18
on子句是必需的,因为您要“连接”,并且需要告诉您希望通过哪些列进行连接。否则,您将对所有可能的行组合使用不带任何where条件的传统from。但你想加入,对吧?
是的,差不多就是这样。
https://stackoverflow.com/questions/50776756
复制相似问题