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 07 MySQL
将图片保存到mysql数据库并展示在前端页面的实现代码
May 02 MySQL
MySQL中日期型单行函数代码详解
Jun 21 MySQL
python中的mysql数据库LIKE操作符详解
Jul 01 MySQL
mysql事务对效率的影响分析总结
Oct 24 MySQL
MySQL创建定时任务
Jan 22 MySQL
MySQL 开窗函数
Feb 15 MySQL
一条慢SQL语句引发的改造之路
Mar 16 MySQL
MySQL 条件查询的常用操作
Apr 28 MySQL
Mysql 一主多从的部署
May 20 MySQL
MySQL数据库之存储过程 procedure
Jun 16 MySQL
分享很少见很有用的SQL功能CORRESPONDING
Aug 05 MySQL
MySQL中的引号和反引号的区别与用法详解
SQL实战演练之网上商城数据库商品类别数据操作
Oct 24 #MySQL
为什么MySQL 删除表数据 磁盘空间还一直被占用
mysql中int(3)和int(10)的数值范围是否相同
深入解析MySQL索引数据结构
MySQL数据库必备之条件查询语句
Oct 15 #MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
You might like
PHP通用分页类page.php[仿google分页]
2008/08/31 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
Yii2实现中国省市区三级联动实例
2017/02/08 PHP
封装好的省市地区联动控件附下载
2007/08/13 Javascript
js每隔5分钟执行一次ajax请求的实现方法
2013/11/27 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
使用jQuery的attr方法来修改onclick值
2014/07/07 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
vue-cli脚手架config目录下index.js配置文件的方法
2018/03/13 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
js get和post请求实现代码解析
2020/02/06 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
Python中的yield浅析
2014/06/16 Python
Python中字符编码简介、方法及使用建议
2015/01/08 Python
详细解读Python中的__init__()方法
2015/05/02 Python
Python中定时任务框架APScheduler的快速入门指南
2017/07/06 Python
详解Django中间件执行顺序
2018/07/16 Python
Python实现平行坐标图的两种方法小结
2019/07/04 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
Python递归实现打印多重列表代码
2020/02/27 Python
python 读txt文件,按‘,’分割每行数据操作
2020/07/05 Python
Melissa香港官网:MDreams
2016/07/01 全球购物
安全资料员岗位职责
2013/12/14 职场文书
秋季红领巾广播稿
2014/01/27 职场文书
公司端午节活动方案
2014/02/04 职场文书
电厂职工自我鉴定
2014/02/20 职场文书
《独坐敬亭山》教学反思
2014/04/08 职场文书
实习指导老师评语
2014/04/26 职场文书
大学生自我评价范文
2015/03/03 职场文书
2015年团队工作总结范文
2015/05/04 职场文书