MySQL 四种连接和多表查询详解


Posted in MySQL onJuly 16, 2021

MySQL 内连接、左连接、右连接、外连接、多表查询

构建环境:

create table t_emp(
	id int primary key, 
	name varchar(20),
	deptId int
);
create table t_dept(
	id int primary key,
	name varchar(20)
);
insert into t_dept(id, name) values(1, '设计部');
insert into t_dept(id, name) values(2, '开发部');
insert into t_dept(id, name) values(3, '测试部');
insert into t_emp(id, name, deptId) values(1, '张三', 1);
insert into t_emp(id, name, deptId) values(2, '李四', 2);
insert into t_emp(id, name, deptId) values(3, '王五', 0);
# ps:为了说明方便,t_emp 表 说成 A 表, t_dept 表说成 B 表

目录

一、INNER JION 内连接 ( A ∩ B )

MySQL 四种连接和多表查询详解

SELECT * FROM t_emp e INNER JOIN t_dept d ON  e.deptId = d.id;

MySQL 四种连接和多表查询详解

二、LEFT JOIN 左外连接( A 全有 )

MySQL 四种连接和多表查询详解

SELECT * FROM t_emp e LEFT JOIN t_dept d ON e.deptId = d.id;

MySQL 四种连接和多表查询详解

三、RIGHT JOIN 右外连接 (B 全有)

MySQL 四种连接和多表查询详解

SELECT * FROM t_emp e RIGHT JOIN t_dept d ON e.deptId = d.id;

MySQL 四种连接和多表查询详解

四、FULL JOIN 全外连接( A + B)

MySQL 四种连接和多表查询详解

SELECT * FROM t_emp e LEFT JOIN t_dept d 
ON e.deptId = d.id UNION 
SELECT * FROM t_emp e RIGHT JOIN t_dept d ON e.deptId = d.id;

MySQL 四种连接和多表查询详解

五、LEFT Excluding JOIN ( A - B 即 A 表独有)+

MySQL 四种连接和多表查询详解

SELECT * FROM t_emp e LEFT JOIN t_dept d ON e.deptId= d.id WHERE d.id is null;

MySQL 四种连接和多表查询详解

六、RIGHT Excluding JOIN ( B - A 即 B表独有)

MySQL 四种连接和多表查询详解

SELECT * FROM t_emp e RIGHT JOIN t_dept d ON e.deptId= d.id WHERE e.id is null;

MySQL 四种连接和多表查询详解

七、OUTER Excluding JOIN (A 与 B 各自独有)

MySQL 四种连接和多表查询详解

SELECT * FROM t_emp e LEFT JOIN t_dept d ON e.deptId= d.id WHERE d.id is null
UNION
SELECT * FROM t_emp e RIGHT JOIN t_dept d ON e.deptId= d.id WHERE e.id is null;

MySQL 四种连接和多表查询详解

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注三水点靠木的更多内容!

MySQL 相关文章推荐
MySQL 逻辑备份与恢复测试的相关总结
May 14 MySQL
MySQL之PXC集群搭建的方法步骤
May 25 MySQL
zabbix监控mysql的实例方法
Jun 02 MySQL
mysql优化之query_cache_limit参数说明
Jul 01 MySQL
MySQL系列之六 用户与授权
Jul 02 MySQL
MySQL系列之十五 MySQL常用配置和性能压力测试
Jul 02 MySQL
MySQL 四种连接和多表查询详解
Jul 16 MySQL
SQL实现LeetCode(175.联合两表)
Aug 04 MySQL
MySQL优化及索引解析
Mar 17 MySQL
mysql 乱码 字符集latin1转UTF8
Apr 19 MySQL
MySQL的存储过程和相关函数
Apr 26 MySQL
MySQL GTID复制的具体使用
May 20 MySQL
MySQL 聚合函数排序
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 #MySQL
MySQL 5.7常见数据类型
mysq启动失败问题及场景分析
解决mysql的int型主键自增问题
QT连接MYSQL数据库的详细步骤
Jul 07 #MySQL
mysql备份策略的实现(全量备份+增量备份)
You might like
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
PHP中使用Memache作为进程锁的操作类分享
2015/03/30 PHP
PHP+Apache环境中如何隐藏Apache版本
2017/11/24 PHP
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
JS request函数 用来获取url参数
2010/05/17 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
Egret引擎开发指南之运行项目
2014/09/03 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
javaScript实现可缩放的显示区效果代码
2015/10/26 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
js中int和string数据类型互相转化实例
2019/01/16 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
2019/10/26 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
javascript用defineProperty实现简单的双向绑定方法
2020/04/03 Javascript
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
python进行参数传递的方法
2020/05/12 Python
Matlab中plot基本用法的具体使用
2020/07/17 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
Python绘制组合图的示例
2020/09/18 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
用python制作个视频下载器
2021/02/01 Python
IE9下html5初试小刀
2010/09/21 HTML / CSS
MATCHESFASHION.COM美国官网:英国奢侈品零售商
2018/10/29 全球购物
工业学校毕业生自荐信范文
2014/01/03 职场文书
代理协议书范本
2014/04/22 职场文书
大学三年计划书范文
2014/04/30 职场文书
厂区绿化方案
2014/05/08 职场文书
SpringCloud的JPA连接PostgreSql的教程
2021/06/26 Java/Android
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android
一文简单了解MySQL前缀索引
2022/04/03 MySQL
css3 选择器
2022/05/11 HTML / CSS