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的join buffer原理
Apr 29 MySQL
修改MySQL的数据库引擎为INNODB的方法
May 26 MySQL
新手入门Mysql--概念
Jun 18 MySQL
mysql如何配置白名单访问
Jun 30 MySQL
MYSQL 的10大经典优化案例场景实战
Sep 14 MySQL
SQL实战演练之网上商城数据库商品类别数据操作
Oct 24 MySQL
Mysql Innodb存储引擎之索引与算法
Feb 15 MySQL
如何创建一个创建MySQL数据库中的datetime类型
Mar 21 MySQL
MySQL磁盘碎片整理实例演示
Apr 03 MySQL
详细聊一聊mysql的树形结构存储以及查询
Apr 05 MySQL
Mysql 一主多从的部署
May 20 MySQL
MySQL count(*)统计总数问题汇总
Sep 23 MySQL
MySQL中的引号和反引号的区别与用法详解
SQL实战演练之网上商城数据库商品类别数据操作
Oct 24 #MySQL
为什么MySQL 删除表数据 磁盘空间还一直被占用
mysql中int(3)和int(10)的数值范围是否相同
深入解析MySQL索引数据结构
MySQL数据库必备之条件查询语句
Oct 15 #MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
You might like
PHP number_format() 函数定义和用法
2012/06/01 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
2015/05/27 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
jquery next nextAll nextUntil siblings的区别介绍
2013/10/05 Javascript
node.js中的fs.statSync方法使用说明
2014/12/16 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
Vue.js 递归组件实现树形菜单(实例分享)
2016/12/21 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
用Node提供静态文件服务的方法
2018/07/06 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
vue+element实现打印页面功能
2019/05/20 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
对Python3之方法的覆盖与super函数详解
2019/06/26 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
python清空命令行方式
2020/01/13 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
高中美术教学反思
2014/01/19 职场文书
2014年重阳节敬老活动方案
2014/09/16 职场文书
评先进个人材料
2014/12/29 职场文书
具结保证书
2015/01/17 职场文书
学生退学证明
2015/06/23 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS