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官方导出工具mysqlpump的使用
May 21 MySQL
MySQL系列之二 多实例配置
Jul 02 MySQL
MySQL去除重叠时间求时间差和的实现
Aug 23 MySQL
一次MySQL启动导致的事故实战记录
Sep 15 MySQL
mysql5.7的安装及Navicate长久免费使用的实现过程
Nov 17 MySQL
SQL注入篇学习之盲注/宽字节注入
Mar 03 MySQL
一次SQL如何查重及去重的实战记录
Mar 13 MySQL
Mysql 数据库中的 redo log 和 binlog 写入策略
Apr 26 MySQL
MySQL 执行数据库更新update操作的时候数据库卡死了
May 02 MySQL
MySQL sql模式设置引起的问题
May 15 MySQL
delete in子查询不走索引问题分析
Jul 07 MySQL
MySQL自定义函数及触发器
Aug 05 MySQL
MySQL中的引号和反引号的区别与用法详解
SQL实战演练之网上商城数据库商品类别数据操作
Oct 24 #MySQL
为什么MySQL 删除表数据 磁盘空间还一直被占用
mysql中int(3)和int(10)的数值范围是否相同
深入解析MySQL索引数据结构
MySQL数据库必备之条件查询语句
Oct 15 #MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
You might like
深思 PHP 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
PHP 分页原理分析,大家可以看看
2009/12/21 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
通过javascript的匿名函数来分析几段简单有趣的代码
2010/06/29 Javascript
node.js使用nodemailer发送邮件实例
2014/03/10 Javascript
JavaScript判断文件上传类型的方法
2014/09/02 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
2017/07/21 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
2018/11/26 Javascript
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
ES5新增数组的实现方法
2020/05/12 Javascript
vuex的使用步骤
2021/01/06 Vue.js
python发送邮件接收邮件示例分享
2014/01/21 Python
利用Python演示数型数据结构的教程
2015/04/03 Python
pytorch:实现简单的GAN示例(MNIST数据集)
2020/01/10 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
python模拟斗地主发牌
2020/04/22 Python
用python绘制樱花树
2020/10/09 Python
python连接mysql数据库并读取数据的实现
2020/09/25 Python
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
英国花园家具中心:Garden Furniture Centre
2017/08/24 全球购物
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
联想西班牙官网:Lenovo西班牙
2018/08/28 全球购物
英国最大的滑板品牌选择:Route One
2019/09/22 全球购物
如何转换一个字符串到enum值
2014/04/12 面试题
风险评估实施方案
2014/03/09 职场文书
艺术设计专业求职自荐信
2014/05/19 职场文书
解除财产保全担保书
2014/05/20 职场文书
知识竞赛拉拉队口号
2014/06/16 职场文书
连锁超市项目计划书
2014/09/15 职场文书
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS