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 pt-slave-restart工具的使用简介
Apr 07 MySQL
详解MySQL中的主键与事务
May 27 MySQL
MySQL通过binlog恢复数据
May 27 MySQL
MySQL 数据类型详情
Nov 11 MySQL
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
Mar 23 MySQL
mysql中数据库覆盖导入的几种方式总结
Mar 25 MySQL
详细聊一聊mysql的树形结构存储以及查询
Apr 05 MySQL
MySQL 执行数据库更新update操作的时候数据库卡死了
May 02 MySQL
MySQL数据库Innodb 引擎实现mvcc锁
May 06 MySQL
MySQL 逻辑备份 into outfile
May 15 MySQL
MySQL一劳永逸永久支持输入中文的方法实例
Aug 05 MySQL
MySQL中dd::columns表结构转table过程及应用详解
Sep 23 MySQL
MySQL中的引号和反引号的区别与用法详解
SQL实战演练之网上商城数据库商品类别数据操作
Oct 24 #MySQL
为什么MySQL 删除表数据 磁盘空间还一直被占用
mysql中int(3)和int(10)的数值范围是否相同
深入解析MySQL索引数据结构
MySQL数据库必备之条件查询语句
Oct 15 #MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
You might like
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
2013/02/14 PHP
CodeIgniter安全相关设置汇总
2014/07/03 PHP
php实现的发送带附件邮件类实例
2014/09/22 PHP
PHP中filter函数校验数据的方法详解
2015/07/31 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
让alert不出现弹窗的两种方法
2014/05/18 Javascript
jQuery中:enabled选择器用法实例
2015/01/04 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
基于jQuery Easyui实现登陆框界面
2017/07/10 jQuery
原生JavaScript实现todolist功能
2018/03/02 Javascript
Angular 数据请求的实现方法
2018/05/07 Javascript
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
Vant 在vue-cli 4.x中按需加载操作
2020/11/05 Javascript
简单的Python抓taobao图片爬虫
2014/10/26 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
python学习基础之循环import及import过程
2018/04/22 Python
pandas 对series和dataframe进行排序的实例
2018/06/09 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
python 使用 requests 模块发送http请求 的方法
2018/12/09 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
python调用matplotlib模块绘制柱状图
2019/10/18 Python
python实现贪吃蛇双人大战
2020/04/18 Python
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
举例说明类变量和实例变量的区别
2016/06/30 面试题
打架检讨书100字
2014/01/08 职场文书
开学季活动策划方案
2014/02/28 职场文书
大学毕业寄语大全
2014/04/10 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
大学生自荐信怎么写
2015/03/26 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
追悼会悼词大全
2015/06/23 职场文书
css背景和边框标签实例详解
2021/05/21 HTML / CSS