最近在准备sql题目,才发现之前sql学的真的太差,此处记录整理一些join的相关知识,方便之后回顾。
Left Join, Right Join, Inner Join(join),Full Join:
https://www.cnblogs.com/grandyang/p/5346963.html
这个链接里这一块解释的很清晰,这些join的主要区别是两表未匹配上的数据如何处理,其实按照字面理解就可以了:
left join:返回左表的所有行和匹配的右表的行,如果没有匹配上的用NULL。
right join:返回右表的所有行和匹配的左表的行,如果没有匹配上的用NULL。
Inner join:选择左右表中关键字匹配上的行。
full join:返回左表的所有行和右表的所有行,是左交和右交的联合。
Natural Join:
https://www.cnblogs.com/liulaoshi/p/6219540.html
natural join就相当于省略了join的on条件,会自动把所有名字相同的列进行等值匹配。
natural join:自然连接(不允许带on/using)
natrual join:全自然连接,对左右2个表相同名字的列进行等值匹配,不可用on,using操作指定,自动删除多余重名列
natrual left join:左自然连接,保留2个表的列(删除多余重名列),以左表为准,不存在匹配的右表列,值置为NULL
natrual right join:和左自然连接相反