MySQL七种JOIN类型小结


Posted in MySQL onOctober 24, 2021

        在开始之前,我们创建两个表用于演示将要介绍的其中JOIN类型。

建表

CREATE TABLE `tbl_dept` (
   `id` INT(11) NOT NULL AUTO_INCREMENT,
   `deptName` VARCHAR(30) DEFAULT NULL,
   `locAdd` VARCHAR(40) DEFAULT NULL,
   PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
CREATE TABLE `tbl_emp` (
   `id` INT(11) NOT NULL AUTO_INCREMENT,
   `name` VARCHAR(20) DEFAULT NULL,
   `deptId` VARCHAR(11) NOT NULL,
   PRIMARY KEY (`id`),
   KEY `fk_dept_id` (`deptId`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

初始化数据

MySQL七种JOIN类型小结MySQL七种JOIN类型小结

七种JOIN

1. A ∩ B

MySQL七种JOIN类型小结

SELECT < select_list >
 FROM TableA A
 INNER JOIN TableB B # 共有
 ON A.Key = B.Key

MySQL七种JOIN类型小结

2. A ( = A ∩ B + A* )

MySQL七种JOIN类型小结

SELECT < select_list >
 FROM TableA A
 LEFT JOIN TableB B
 ON A.Key = B.Key

MySQL七种JOIN类型小结

3. B ( = A ∩ B + B* )

MySQL七种JOIN类型小结

SELECT < select_list >
 FROM TableA A
 RIGHT JOIN TableB B
 ON A.Key = B.Key

MySQL七种JOIN类型小结 

4. A* ( = A - A ∩ B )

 MySQL七种JOIN类型小结

SELECT < select_list >
 FROM TableA A
 LEFT JOIN TableB B
 ON A.Key = B.Key # ON时主表保留
 WHERE B.Key IS NULL # 筛选A表数据

MySQL七种JOIN类型小结

5. B* ( = B - A ∩ B )

MySQL七种JOIN类型小结

SELECT < select_list >
 FROM TableA A
 RIGHT JOIN TableB B
 ON A.Key = B.Key
 WHERE A.Key IS NULL

MySQL七种JOIN类型小结

6. A ∪ B

 MySQL七种JOIN类型小结

SELECT < select_list >
 FROM TableA A
 FULL OUTER JOIN TableB B ## FULL OUTER 仅oracle支持
 ON A.Key = B.Key

 MySQL七种JOIN类型小结

7. A ∪ B - A ∩ B

MySQL七种JOIN类型小结

SELECT < select_list >
 FROM TableA A
 FULL OUTER JOIN TableB B
 ON A.Key = B.Key
 WHERE A.Key IS NULL OR B.Key IS NULL

MySQL七种JOIN类型小结

到此这篇关于MySQL七种JOIN类型详解的文章就介绍到这了,更多相关mysql join类型内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL kill不掉线程的原因
May 07 MySQL
新手必备之MySQL msi版本下载安装图文详细教程
May 21 MySQL
Mysql基础知识点汇总
May 26 MySQL
MySQL 数据类型选择原则
May 27 MySQL
解析MySQL binlog
Jun 11 MySQL
mysql如何配置白名单访问
Jun 30 MySQL
解决mysql的int型主键自增问题
Jul 15 MySQL
mysql主从复制的实现步骤
Oct 24 MySQL
Linux7.6二进制安装Mysql8.0.27详细操作步骤
Nov 27 MySQL
聊聊mysql都有哪几种分区方式
Apr 13 MySQL
MySQL提升大量数据查询效率的优化神器
Jul 07 MySQL
MySQL性能指标TPS+QPS+IOPS压测
Aug 05 MySQL
MySQL中的引号和反引号的区别与用法详解
SQL实战演练之网上商城数据库商品类别数据操作
Oct 24 #MySQL
为什么MySQL 删除表数据 磁盘空间还一直被占用
mysql中int(3)和int(10)的数值范围是否相同
深入解析MySQL索引数据结构
MySQL数据库必备之条件查询语句
Oct 15 #MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
You might like
php 正则表达式小结
2009/08/31 PHP
PHP检测字符串是否为UTF8编码的常用方法
2014/11/21 PHP
ThinkPHP中使用Ueditor富文本编辑器
2015/09/02 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
PHP截取IE浏览器并缩小原图的方法
2016/03/04 PHP
laravel5.1 ajax post 传值_token示例
2019/10/24 PHP
document.documentElement &amp;&amp; document.documentElement.scrollTop
2007/12/01 Javascript
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
2014/05/15 Javascript
原生JS实现拖拽图片效果
2020/08/27 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
angular2+nodejs实现图片上传功能
2017/03/27 NodeJs
js实现随机数字字母验证码
2017/06/19 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
2020/08/11 Javascript
JavaScript实现HTML导航栏下拉菜单
2020/11/25 Javascript
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
centos6.7安装python2.7.11的具体方法
2017/01/16 Python
python实现K最近邻算法
2018/01/29 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
python ETL工具 pyetl
2020/06/07 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
PHP面试题集
2016/12/18 面试题
大学生就业自我鉴定
2013/10/26 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
2015年幼儿园中班工作总结
2015/04/25 职场文书
升学宴家长答谢词
2015/09/29 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书
element多个表单校验的实现
2021/05/27 Javascript