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的半同步
Apr 22 MySQL
详解MySQL主从复制及读写分离
May 07 MySQL
MySQL中distinct和count(*)的使用方法比较
May 26 MySQL
新手入门Mysql--sql执行过程
Jun 20 MySQL
MySQL去除重叠时间求时间差和的实现
Aug 23 MySQL
MySQL into_Mysql中replace与replace into用法案例详解
Sep 14 MySQL
mysql中int(3)和int(10)的数值范围是否相同
Oct 16 MySQL
mysql事务对效率的影响分析总结
Oct 24 MySQL
MySQL视图概念以及相关应用
Apr 19 MySQL
mysql中如何用命令创建联合唯一索引
Apr 20 MySQL
Mysql开启外网访问
May 15 MySQL
MySQL如何修改字段类型和字段长度
Jun 10 MySQL
MySQL中的引号和反引号的区别与用法详解
SQL实战演练之网上商城数据库商品类别数据操作
Oct 24 #MySQL
为什么MySQL 删除表数据 磁盘空间还一直被占用
mysql中int(3)和int(10)的数值范围是否相同
深入解析MySQL索引数据结构
MySQL数据库必备之条件查询语句
Oct 15 #MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
You might like
PHP连接access数据库
2008/03/27 PHP
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
PHP中使用CURL模拟登录并获取数据实例
2014/07/01 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
JS模拟多线程
2007/02/07 Javascript
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
举例讲解JavaScript substring()的使用方法
2015/11/09 Javascript
jQuery中trigger()与bind()用法分析
2015/12/18 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
求js数组的最大值和最小值的四种方法
2017/03/03 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
JS验证输入的是否是数字及保留几位小数问题
2018/05/09 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
小程序页面动态配置实现方法
2019/02/05 Javascript
Vue formData实现图片上传
2019/08/20 Javascript
解决Element中el-date-picker组件不回填的情况
2020/11/07 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
2020/11/12 Javascript
用Python创建声明性迷你语言的教程
2015/04/13 Python
python实现的简单文本类游戏实例
2015/04/28 Python
python字符串连接方法分析
2016/04/12 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
2016/06/29 Python
Python实现字典去除重复的方法示例
2017/07/31 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
2018/03/04 Python
Numpy中的mask的使用
2018/07/21 Python
HTML5 与 XHTML2
2008/10/17 HTML / CSS
《木笛》教学反思
2014/03/01 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
顶岗实习协议书
2015/01/29 职场文书
大足石刻导游词
2015/02/02 职场文书
五一晚会主持词
2015/07/01 职场文书
中学语文教学反思
2016/02/16 职场文书
Python 使用dict实现switch的操作
2021/04/07 Python