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 相关文章推荐
教你用eclipse连接mysql数据库
Apr 22 MySQL
MySQL COUNT函数的使用与优化
May 10 MySQL
MySQL注入基础练习
May 30 MySQL
Mysql数据库按时间点恢复实战记录
Jun 30 MySQL
MySQL 十大常用字符串函数详解
Jun 30 MySQL
MySQL的Query Cache图文详解
Jul 01 MySQL
Mysql binlog日志文件过大的解决
Oct 05 MySQL
面试中老生常谈的MySQL问答集锦夯实基础
Mar 13 MySQL
分享MySQL常用 内核 Debug 几种常见方法
Mar 17 MySQL
Mysql超详细讲解死锁问题的理解
Apr 01 MySQL
MySQL数据库 安全管理
May 06 MySQL
MySQL索引失效十种场景与优化方案
May 08 MySQL
MySQL中的引号和反引号的区别与用法详解
SQL实战演练之网上商城数据库商品类别数据操作
Oct 24 #MySQL
为什么MySQL 删除表数据 磁盘空间还一直被占用
mysql中int(3)和int(10)的数值范围是否相同
深入解析MySQL索引数据结构
MySQL数据库必备之条件查询语句
Oct 15 #MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
You might like
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
PHP 防恶意刷新实现代码
2010/05/16 PHP
PHP操作XML作为数据库的类
2010/12/19 PHP
PHP数组式访问接口ArrayAccess用法分析
2017/12/28 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
JavaScript使用技巧精萃[代码非常实用]
2008/11/21 Javascript
jQuery之按钮组件的深入解析
2013/06/19 Javascript
微信JSSDK上传图片
2015/08/23 Javascript
js中数组插入、删除元素操作的方法
2017/02/15 Javascript
Bootstrap表格使用方法详解
2017/02/17 Javascript
详解angular2封装material2对话框组件
2017/03/03 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
Javascript 对象(object)合并操作实例分析
2019/07/30 Javascript
vue实现行列转换的一种方法
2019/08/06 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
[01:14]DOTA2亚洲邀请赛小组赛赛前花絮
2017/03/27 DOTA
python控制台英汉汉英电子词典
2020/04/23 Python
Python中用startswith()函数判断字符串开头的教程
2015/04/07 Python
Python操作mongodb数据库的方法详解
2018/12/08 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
pytorch模型预测结果与ndarray互转方式
2020/01/15 Python
pycharm设置python文件模板信息过程图解
2020/03/10 Python
python中逻辑与或(and、or)和按位与或异或(&amp;、|、^)区别
2020/08/05 Python
利用Python实现朋友圈中的九宫格图片效果
2020/09/03 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
整理HTML5中表单的常用属性及新属性
2016/02/19 HTML / CSS
玩具反斗城西班牙网上商城:ToysRUs西班牙
2017/01/19 全球购物
七年级数学教学反思
2014/01/22 职场文书
《海底世界》教学反思
2014/04/16 职场文书
中考标语大全
2014/06/05 职场文书
80后婚前协议书范本
2014/10/24 职场文书
初三语文教学反思
2016/03/03 职场文书
年终工作总结范文
2019/06/20 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript