您当前的位置:首页 > 电脑百科 > 数据库 > MYSQL

MySQL七种JOIN类型,终于学明白了

时间:2022-01-06 10:14:49  来源:  作者:九道门聊数据

MySQL的JOIN大家在日常工作中都用得很多,今天小朱老师就给大家整理了MySQL七种JOIN类型的用法,一起来深入了解一下吧。数据分析优质社群,等你加入哦~

首先创建需要JOIN的两个表:

CREATE TABLE `tbl_emp` (
   `id` INT(11) NOT NULL AUTO_INCREMENT,
   `name` VARCHAR(30) DEFAULT NULL,
   `deptID` VARCHAR(40) DEFAULT NULL,
   PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

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;

我们可以看到数据的呈现:

九道门 | MySQL七种JOIN类型,终于学明白了

 

1、A ∩ B

九道门 | MySQL七种JOIN类型,终于学明白了

 

 SELECT *
 FROM tbl_emp a
 INNER JOIN tbl_dept b # 共有
 ON a.deptID = b.ID
九道门 | MySQL七种JOIN类型,终于学明白了

 

2、A ( = A ∩ B + A* )

九道门 | MySQL七种JOIN类型,终于学明白了

 

 SELECT *
 FROM tbl_emp a
 LEFT JOIN tbl_dept b
 ON a.deptID = b.ID
九道门 | MySQL七种JOIN类型,终于学明白了

 

3、B ( = A ∩ B + B* )

九道门 | MySQL七种JOIN类型,终于学明白了

 

 SELECT *
 FROM tbl_emp a
 RIGHT JOIN tbl_dept b
 ON a.deptID = b.ID
九道门 | MySQL七种JOIN类型,终于学明白了

 

4. A* ( = A - A ∩ B )

九道门 | MySQL七种JOIN类型,终于学明白了

 

 SELECT *
 FROM tbl_emp a
 LEFT JOIN tbl_dept b 
 ON a.deptID = b.ID # ON时主表保留
 WHERE B.ID IS NULL # 筛选A表数据
九道门 | MySQL七种JOIN类型,终于学明白了

 

5. B* ( = B - A ∩ B )

九道门 | MySQL七种JOIN类型,终于学明白了

 

 SELECT *
 FROM tbl_emp a
 RIGHT JOIN tbl_dept b 
 ON a.deptID = b.ID # ON时主表保留
 WHERE a.deptID IS NULL # 筛选B表数据
九道门 | 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格式
 SELECT *
 FROM tbl_emp a
 LEFT JOIN tbl_dept b 
 ON a.deptID = b.ID 
 UNION
 SELECT *
 FROM tbl_emp a
 RIGHT JOIN tbl_dept b 
 ON a.deptID = b.ID
九道门 | 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格式
 SELECT *
 FROM tbl_emp a
 LEFT JOIN tbl_dept b 
 ON a.deptID = b.ID 
 UNION
 SELECT *
 FROM tbl_emp a
 RIGHT JOIN tbl_dept b 
 ON a.deptID = b.ID
 WHERE a.deptID IS NULL OR b.ID IS NULL
九道门 | MySQL七种JOIN类型,终于学明白了

 

以上就是其中JOIN类型的介绍,大家可以用起来了哦。



Tags:JOIN类型   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
MySQL的JOIN大家在日常工作中都用得很多,今天小朱老师就给大家整理了MySQL七种JOIN类型的用法,一起来深入了解一下吧。数据分析优质社群,等你加入哦~首先创建需要JOIN的两个表:C...【详细内容】
2022-01-06  Tags: JOIN类型  点击:(0)  评论:(0)  加入收藏
▌简易百科推荐
MySQL的JOIN大家在日常工作中都用得很多,今天小朱老师就给大家整理了MySQL七种JOIN类型的用法,一起来深入了解一下吧。数据分析优质社群,等你加入哦~首先创建需要JOIN的两个表:C...【详细内容】
2022-01-06  九道门聊数据    Tags:JOIN类型   点击:(0)  评论:(0)  加入收藏
Windows上安装了XMAPP-controller之后间歇性出现MySQL无法启动,查看日之后发现是innodb的报错,报错信息如下:22-01-04 17:21:38 0 [Note] InnoDB: Creating shared tablespace...【详细内容】
2022-01-05  桌面运维小技巧    Tags:innodb   点击:(3)  评论:(0)  加入收藏
# 快速拉起一台mysql 8.0docker容器,生产切勿这样拉取,需要把数据目录都挂载出来,这里我们只不过是为了研究MySQL,所以就不挂载了。docker run --name mysql-8.0.27 -p 3306:330...【详细内容】
2022-01-04  DifferentJava    Tags:MySQL   点击:(5)  评论:(0)  加入收藏
作者:雷文霆 爱可生华东交付服务部 DBA 成员,主要负责Mysql故障处理及相关技术支持。爱好看书,电影。座右铭,每一个不曾起舞的日子,都是对生命的辜负。 本文来源:原创投稿 *爱可生...【详细内容】
2021-12-24  爱可生    Tags:MySQL   点击:(12)  评论:(0)  加入收藏
生成间隙(gap)锁、临键(next-key)锁的前提条件 是在 RR 隔离级别下。有关Mysql记录锁、间隙(gap)锁、临键锁(next-key)锁的一些理论知识之前有写过,详细内容可以看这篇文章...【详细内容】
2021-12-14  python数据分析    Tags:MySQL记录锁   点击:(19)  评论:(0)  加入收藏
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二...【详细内容】
2021-12-14  linux上的码农    Tags:mysql   点击:(16)  评论:(0)  加入收藏
为查询优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查...【详细内容】
2021-12-09  元宇宙iwemeta    Tags:mysql   点击:(17)  评论:(0)  加入收藏
测试的目的和原因,公司有很多程序员,每个程序员对数据库和表结构都有自己的理解。而且每个程序员的理解往往是以效率考虑。既然都是为了效率考虑,那么我就来测试一下究竟哪种使...【详细内容】
2021-12-08  吴彬的分享    Tags:Mysql数据库   点击:(16)  评论:(0)  加入收藏
当你们考虑项目并发的时候,我在部署环境,当你们在纠结使用ArrayList还是LinkedArrayList的时候,我还是在部署环境。所以啊,技术不止境,我在部环境。今天这篇文章缕一下在同一台服...【详细内容】
2021-12-08  秃头码哥    Tags:MySQL数据库   点击:(19)  评论:(0)  加入收藏
对于数据分析来说,MySQL使用最多的是查询,比如对数据进行排序、分组、去重、汇总及字符串匹配等,如果查询的数据涉及多个表,还需要要对表进行连接,本文就来说说MySQL中常用的查询...【详细内容】
2021-12-06  笨鸟学数据分析    Tags:MySQL   点击:(22)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条