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查询的控制语句图文详解
Apr 11 MySQL
MySQL安装后默认自带数据库的作用详解
Apr 27 MySQL
MySQL sql_mode的使用详解
May 08 MySQL
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
Jun 21 MySQL
MySQL深度分页(千万级数据量如何快速分页)
Jul 25 MySQL
浅谈MySQL之select优化方案
Aug 07 MySQL
SQL IDENTITY_INSERT作用案例详解
Aug 23 MySQL
MySQL 用 limit 为什么会影响性能
Sep 15 MySQL
MySQL数据库优化之通过索引解决SQL性能问题
Apr 10 MySQL
MySQL三种方式实现递归查询
Apr 18 MySQL
MySQL数据库安装方法与图形化管理工具介绍
May 30 MySQL
MySQL中的引号和反引号的区别与用法详解
SQL实战演练之网上商城数据库商品类别数据操作
Oct 24 #MySQL
为什么MySQL 删除表数据 磁盘空间还一直被占用
mysql中int(3)和int(10)的数值范围是否相同
深入解析MySQL索引数据结构
MySQL数据库必备之条件查询语句
Oct 15 #MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
You might like
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
2014/06/12 PHP
thinkphp autoload 命名空间自定义 namespace
2015/07/17 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
Google Map Api和GOOGLE Search Api整合实现代码
2009/07/18 Javascript
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
wap图片滚动特效无css3元素纯js脚本编写
2014/08/22 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
Js与Jq 获取页面元素值的方法和差异对比
2015/04/30 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
Backbone.js框架中简单的View视图编写学习笔记
2016/02/14 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
vue 2.0组件与v-model详解
2017/03/27 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
js绑定事件和解绑事件
2017/04/27 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
微信小程序动态添加和删除组件的现实
2020/02/28 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
Python正则抓取新闻标题和链接的方法示例
2017/04/24 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
2020/03/10 Python
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
django API 中接口的互相调用实例
2020/04/01 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
Python celery原理及运行流程解析
2020/06/13 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
大学生水果店创业计划书
2014/01/28 职场文书
法制演讲稿
2014/09/10 职场文书
敬老院志愿者活动总结
2015/05/06 职场文书
2016七一建党节慰问信
2015/11/30 职场文书
《颐和园》教学反思
2016/02/19 职场文书
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle
python中取整数的几种方法
2021/11/07 Python