sql中join的用法
sql中join的含义可以理解为单词“join”,用来连接两张表,join所有连接方式可以分为:
内连接,外连接,右连接,左连接,自然连接
上面这张图已经很清晰的表明了各种连接方式的语法。
如果多对与整体表的查询进行分类,按照下面表格进行:
内连接:
***内连接INNER JOIN是最常用的连接操作。从数学的角度讲就是求两个表的交集,从笛卡尔积的角度讲就是从笛卡尔积中挑出ON子句条件成立的记录。join,inner join,有INNER JOIN,WHERE(等值连接),STRAIGHT_JOIN,JOIN(省略INNER)四种写法。
**
外连接:
**left join,left outer join,right join,right outer join,union
左连接LEFT JOIN
求两个表A表和B表的交集外加左表剩下的数据。依旧从笛卡尔积的角度讲,就是先从笛卡尔积中挑出ON子句条件成立的记录,然后加上左表A表中剩余的记录(见最后三条)。
右连接 RIGHT JOIN
同理右连接RIGHT JOIN就是求两个表A和B表的交集外加右表B剩下的数据。再次从笛卡尔积的角度描述,右连接就是从笛卡尔积中挑出ON子句条件成立的记录,然后加上右表中剩余的记录(见最后一条)
外连接 FULL OUTER JOIN
外连接就是求两个表A和B集合的并集。从笛卡尔积的角度讲就是从笛卡尔积中挑出ON子句条件成立的记录,然后加上左表中剩余的记录,最后加上右表中剩余的记录。另外MySQL不支持OUTER JOIN,但是我们可以对左连接和右连接的结果做 UNION 操作来实现。
交叉连接:cross join
详细链接:https://blog.csdn.net/qq30211478/article/details/78670374