【数据库】Join连接

来源:互联网 发布:白话数据库三大范式 编辑:程序博客网 时间:2024/06/06 12:57

1:INNER JOIN
内连接,也叫等值连接,inner join产生同时符合A表和B表的一组数据。
如图:

这里写图片描述

2:LEFT JOIN
左连接从A表(左)产生一套完整的记录,与匹配的B表记录(右表) .如果没有匹配,右侧将包含null,在Mysql中等同于left outer join。
如图:

这里写图片描述

3:RIGHT JOIN
同Left join,AB表互换即可。
4:Cross join
交叉连接,得到的结果是两个表的乘积,即笛卡尔积
笛卡尔(Descartes)乘积又叫直积。假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1),
(b,2)}。可以扩展到多个集合的情况。类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B的笛
卡尔积表示所有可能的选课情况。
5:Full join
全连接产生的所有记录(双方匹配记录)在表A和表B。如果没有匹配,则对面将包含null。如图:

这里写图片描述

6:性能建议
a:尽量避免使用Left join或Right join,而用Inner join
b:在使用Left join或Right join时,ON会优先执行,where条件在最后执行,所以在使用过程中,条件尽可能的在ON语句中判断,减少where的执行 c:少用子查询,而用join。

1 0
原创粉丝点击