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 Innodb关键特性之插入缓冲(insert buffer)
Apr 08 MySQL
JDBC连接的六步实例代码(与mysql连接)
May 12 MySQL
新手必备之MySQL msi版本下载安装图文详细教程
May 21 MySQL
Mysql效率优化定位较低sql的两种方式
May 26 MySQL
MySQL完整性约束的定义与实例教程
May 30 MySQL
Mysql数据库索引面试题(程序员基础技能)
May 31 MySQL
Unity连接MySQL并读取表格数据的实现代码
Jun 20 MySQL
解决Mysql中的innoDB幻读问题
Apr 29 MySQL
Mysql 文件配置解析介绍
May 06 MySQL
深入理解MySQL中MVCC与BufferPool缓存机制
May 25 MySQL
MySQL详解进行JDBC编程与增删改查方法
Jun 16 MySQL
Mysql表数据比较大情况下修改添加字段的方法实例
Jun 28 MySQL
MySQL 聚合函数排序
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 #MySQL
MySQL 5.7常见数据类型
mysq启动失败问题及场景分析
解决mysql的int型主键自增问题
QT连接MYSQL数据库的详细步骤
Jul 07 #MySQL
mysql备份策略的实现(全量备份+增量备份)
You might like
谈谈新手如何学习PHP 默默经典版本
2009/08/04 PHP
javascript some()函数用法详解
2014/11/13 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
jQuery toggle()设置CSS样式
2009/11/05 Javascript
基于jQuery实现的当离开页面时出现提示的实现代码
2011/06/27 Javascript
10款非常有用的 Ajax 插件分享
2012/03/14 Javascript
js中数组Array的一些常用方法总结
2013/08/12 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
JavaScript中split() 使用方法汇总
2015/04/17 Javascript
JavaScript模拟实现键盘打字效果
2015/06/29 Javascript
JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js
2015/09/14 Javascript
javascript垃圾收集机制的原理分析
2016/12/08 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
React中如何引入Angular组件详解
2018/08/09 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
微信小程序后端无法保持session的原因及解决办法问题
2020/03/20 Javascript
jQuery实现回到顶部效果
2020/10/19 jQuery
python实现读Excel写入.txt的方法
2018/04/29 Python
python 堆和优先队列的使用详解
2019/03/05 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
2020/01/20 Python
tensorflow保持每次训练结果一致的简单实现
2020/02/17 Python
CSS 3.0文字悬停跳动特效代码
2020/10/26 HTML / CSS
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
护士自我评价范文
2014/01/25 职场文书
心理健康课教学反思
2014/02/13 职场文书
cf搞笑广告词
2014/03/14 职场文书
护士节演讲稿开场白
2014/08/25 职场文书
村主任“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
实习科室评语
2015/01/04 职场文书
三八妇女节致辞
2015/07/31 职场文书
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA