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多表查询-笔记七
Apr 05 MySQL
将图片保存到mysql数据库并展示在前端页面的实现代码
May 02 MySQL
MYSQL(电话号码,身份证)数据脱敏的实现
May 28 MySQL
Mysql 如何查询时间段交集
Jun 08 MySQL
SQL实现LeetCode(177.第N高薪水)
Aug 04 MySQL
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
Dec 06 MySQL
MySQL中B树索引和B+树索引的区别详解
Mar 03 MySQL
面试提问mysql一张表到底能存多少数据
Mar 13 MySQL
一条慢SQL语句引发的改造之路
Mar 16 MySQL
MySQL学习之基础命令实操总结
Mar 19 MySQL
MySQL学习必备条件查询数据
Mar 25 MySQL
mysql中如何用命令创建联合唯一索引
Apr 20 MySQL
MySQL 聚合函数排序
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 #MySQL
MySQL 5.7常见数据类型
mysq启动失败问题及场景分析
解决mysql的int型主键自增问题
QT连接MYSQL数据库的详细步骤
Jul 07 #MySQL
mysql备份策略的实现(全量备份+增量备份)
You might like
两个开源的Php输出Excel文件类
2010/02/08 PHP
用PHP书写安全的脚本代码
2012/02/05 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
推荐十款免费 WordPress 插件
2015/03/24 PHP
jQuery使用动态渲染表单功能完成ajax文件下载
2013/01/15 Javascript
JS获取IP、MAC和主机名的五种方法
2013/11/14 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
js实现文字闪烁特效的方法
2015/12/17 Javascript
Nodejs学习item【入门手上】
2016/05/05 NodeJs
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
javascript帧动画(实例讲解)
2017/09/02 Javascript
vue cli 全面解析
2018/02/28 Javascript
读懂CommonJS的模块加载
2019/04/19 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
详解从vue-loader源码分析CSS Scoped的实现
2019/09/23 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
功能完善的小程序日历组件的实现
2020/03/31 Javascript
python使用socket远程连接错误处理方法
2015/04/29 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
迪拜航空官方网站:flydubai
2017/04/20 全球购物
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
C++面试题目
2013/06/25 面试题
英语四级考试作弊检讨书
2014/09/29 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
2015年七夕爱情寄语
2015/03/24 职场文书
2015年财政所工作总结
2015/04/25 职场文书
大学开学感言
2015/08/01 职场文书
《兰兰过桥》教学反思
2016/02/20 职场文书
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电
mysql 排序失效
2022/05/20 MySQL