您的位置:首页 > 数据库

【数据库】Join连接

2015-10-26 11:11 330 查看
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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息