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 使用SQL语句修改表名的实现
Apr 07 MySQL
MySQL创建索引需要了解的
Apr 08 MySQL
MySQL root密码的重置方法
Apr 21 MySQL
浅谈mysql执行过程以及顺序
May 12 MySQL
MySQL表字段时间设置默认值
May 13 MySQL
MySQL 使用事件(Events)完成计划任务
May 24 MySQL
Mysql实现主从配置和多主多从配置
Jun 02 MySQL
SQL实现LeetCode(176.第二高薪水)
Aug 04 MySQL
Mysql使用全文索引(FullText index)的实例代码
Apr 03 MySQL
MySQL提取JSON字段数据实现查询
Apr 22 MySQL
pt-archiver 主键自增
Apr 26 MySQL
讲解MySQL增删改操作
May 06 MySQL
MySQL中的引号和反引号的区别与用法详解
SQL实战演练之网上商城数据库商品类别数据操作
Oct 24 #MySQL
为什么MySQL 删除表数据 磁盘空间还一直被占用
mysql中int(3)和int(10)的数值范围是否相同
深入解析MySQL索引数据结构
MySQL数据库必备之条件查询语句
Oct 15 #MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
You might like
新版PHP极大的增强功能和性能
2006/10/09 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
php自定义分页类完整实例
2015/12/25 PHP
PHP命名空间namespace的定义方法详解
2017/03/29 PHP
php 可变函数使用小结
2018/06/12 PHP
JMenuTab简单使用说明
2008/03/13 Javascript
JS面向对象、prototype、call()、apply()
2009/05/14 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
js实现有时间限制消失的图片方法
2015/02/27 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
2015/04/27 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
2015/09/12 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
用最简单的方法判断JavaScript中this的指向(推荐)
2017/09/04 Javascript
angular之ng-template模板加载
2017/11/09 Javascript
Vue组件全局注册实现警告框的实例详解
2018/06/11 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
微信小程序实现签字功能
2019/12/23 Javascript
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
Python的randrange()方法使用教程
2015/05/15 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
Python多分支if语句的使用
2020/09/03 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
人事文员岗位职责
2014/02/16 职场文书
参观接待方案
2014/03/17 职场文书
平安家庭示范户事迹
2014/06/02 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
安全教育培训制度
2015/08/06 职场文书
电脑开机弹出documents文件夹怎么回事?弹出documents文件夹解决方法
2022/04/08 数码科技