mysql常用基础操作语法(九)~~外连接查询【命令行模式】
2016-06-22 21:18
781 查看
1、左外连接left outer join或者left jion,outer可以省略不写,下边的右连接和全连接也一样:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/b34964ae390c862f4a4a7a7f773981aa)
![](http://blog.csdn.net/tuzongxun/article/details/file:/H:/youdaobiji/qqA4925CA5EB6376EF1209D66BD4F52A29/a2b4cae0afb14092852e4150953b1444/se1.png)
左外连接的意思是,以left join左边的表中的数据为基准,即左边的表中有的必须要全部显示出来,如下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/79a27934956efe8f9cc6224b4495f915)
![](http://blog.csdn.net/tuzongxun/article/details/file:/H:/youdaobiji/qqA4925CA5EB6376EF1209D66BD4F52A29/6642a0db14fe465ea5d31ff82f0d5d5f/se2.png)
这里第一个查询中,company表在左边,因此就以company为基准,所以显示的结果中除了depart_id相同的6条数据外,还把company中存在的另外一条也显示出来。
而第二个查询中,emp在左边,就以emp为基准,因此显示的结果中除了depart_id相同的6条外,还把emp中存在的另外一条也显示了出来。
2、右外连接right join:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/477631cd13bcbf2f7ee0b17eeebd76bc)
![](http://blog.csdn.net/tuzongxun/article/details/file:/H:/youdaobiji/qqA4925CA5EB6376EF1209D66BD4F52A29/2eb6a2767255436f84ba27a844a71c2a/se3.png)
单从上边的两个查询的查询来看,除开字段顺序的不同外,和左外连接的操作是很相似的。只不过一个是以left join左边的表为基准,而另一个是以right join右边的表为基准。(有朋友说left join的性能比较好,这个暂时先不管,等到性能测试方面的时候再说)
3、全连接full join,这个和上边略有不同的是,语法中不用在join后边使用on,直接select 字段名 from tablename1 full join tablename2;而它 的结果也会出现之前提到的笛卡尔积现象,也就是显示(表1的字段数加上表二的字段数)个字段,显示(表一的记录数乘以表二的记录数)个记录;
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/efec4674742c4cfcf773035fcb5e4026)
![](http://blog.csdn.net/tuzongxun/article/details/file:/H:/youdaobiji/qqA4925CA5EB6376EF1209D66BD4F52A29/a2b4cae0afb14092852e4150953b1444/se1.png)
左外连接的意思是,以left join左边的表中的数据为基准,即左边的表中有的必须要全部显示出来,如下图:
![](http://blog.csdn.net/tuzongxun/article/details/file:/H:/youdaobiji/qqA4925CA5EB6376EF1209D66BD4F52A29/6642a0db14fe465ea5d31ff82f0d5d5f/se2.png)
这里第一个查询中,company表在左边,因此就以company为基准,所以显示的结果中除了depart_id相同的6条数据外,还把company中存在的另外一条也显示出来。
而第二个查询中,emp在左边,就以emp为基准,因此显示的结果中除了depart_id相同的6条外,还把emp中存在的另外一条也显示了出来。
2、右外连接right join:
![](http://blog.csdn.net/tuzongxun/article/details/file:/H:/youdaobiji/qqA4925CA5EB6376EF1209D66BD4F52A29/2eb6a2767255436f84ba27a844a71c2a/se3.png)
单从上边的两个查询的查询来看,除开字段顺序的不同外,和左外连接的操作是很相似的。只不过一个是以left join左边的表为基准,而另一个是以right join右边的表为基准。(有朋友说left join的性能比较好,这个暂时先不管,等到性能测试方面的时候再说)
3、全连接full join,这个和上边略有不同的是,语法中不用在join后边使用on,直接select 字段名 from tablename1 full join tablename2;而它 的结果也会出现之前提到的笛卡尔积现象,也就是显示(表1的字段数加上表二的字段数)个字段,显示(表一的记录数乘以表二的记录数)个记录;
![](http://blog.csdn.net/tuzongxun/article/details/file:/H:/youdaobiji/qqA4925CA5EB6376EF1209D66BD4F52A29/8520b8a0a7464544a5f558450144895f/se4.png)
相关文章推荐
- mysql 入门教程
- mysql cpu占用高的原因
- mysql group by详解
- Mysql中设置默认时间为当前值
- MySQL集群的可行方案
- MySQL学习(一)
- 返回第N大的数--Mysql(学习)
- MySQL 加锁处理分析
- mysql读写分离
- mysql ERROR 1045 错误的解决办法,很有用啊
- mysql interactive_timeout wait_timeout区别
- mysql-mysqldump
- mysql表属性、索引、约束
- MySQL 5.7原生JSON格式支持
- mysql主从复制
- mysql的基本安装与操作
- [MySQL] 生产环境MySQL数据库事务一直在RUNNING
- liunx mysql 设置root密码
- MySQL数据库,将一列数据组合成一行,并以逗号分割,GROUP_CONCAT
- MySQL的优化点总结---通过计算多种状态的百分比看MySQL的性能情况