MySQL 内连接、外连接、左连接、右连接、全连接
建表语句:
CREATE TABLE `a_table` (`a_id` int(11) DEFAULT NULL,`a_name` varchar(10) DEFAULT NULL,`a_part` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `b_table` (`b_id` int(11) DEFAULT NULL,`b_name` varchar(10) DEFAULT NULL,`b_part` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
表测试数据:
一、内连接
关键字:inner join on
语句:select * from a_table a inner join b_table b on a.a_id = b.b_id;
执行结果:
说明:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集(阴影)部分。
二、左连接(左外连接)
关键字:left join on / left outer join on
语句:select * from a_table a left join b_table b on a.a_id = b.b_id;
执行结果:
说明:
left join 是left outer join的简写,它的全称是左外连接,是外连接中的一种。
左(外)连接,左表(a_table)的记录将会全部表示出来,而右表(b_table)只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。
三、右连接(右外连接)
关键字:right join on / right outer join on
语句:select * from a_table a right outer join b_table b on a.a_id = b.b_id;
执行结果:
说明:
right join是right outer join的简写,它的全称是右外连接,是外连接中的一种。
与左(外)连接相反,右(外)连接,左表(a_table)只会显示符合搜索条件的记录,而右表(b_table)的记录将会全部表示出来。左表记录不足的地方均为NULL。
四、全连接(全外连接)
MySQL目前不支持此种方式,可以用其他方式替代解决。
全外连接:左表和右表都不做限制,所有的记录都显示,两表不足的地方用null 填充;
也就是:
左外连接=左表全部记录+相关联结果
右外连接=右表全部记录+相关联结果
全外连接=左表全部记录+右表全部记录+相关联结果=左外连接+右外连接-相关联结果(即去重复)
那么在MYSQL中谁可以做到呢?
UNION
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
故实现全外连接可以使用:
SELECT * FROM emp e LEFT JOIN dept d ON e.deptno=d.deptno
UNION
SELECT * FROM emp e RIGHT JOIN dept d ON e.deptno=d.deptno;
注释:以上连接全为等值连接;Oracle中全外连接可以使用full join;请不要弄混。
MySQL 内连接、外连接、左连接、右连接、全连接相关推荐
- 【MySQL】MySQL 的连接(内、左、右、全)
一.表 的连 结 1.目的:减少数据的冗余 2.核心:分类 ***连接时至少要两张表,连接主要有内连接(inner join).左外连接(left outer join).右外连接(right out ...
- 数据库内、外、左、右连接详解
写在前面: 数据库连接操作非常重要,明确连接操作有助于更好地掌握SQL语句查询操作. 数据库连表方式: 内连接 :inner join 外连接 :outer join 左外连接 :left outer ...
- tplink连接服务器失败_管家婆财贸双全连接失败,服务器端没有找到加密狗
管家婆财贸双全连接失败,服务器端没有找到加密狗 管家婆财贸双全找不到狗判断步骤 1.先判断电脑能否识别管家婆财贸双全加密狗我的电脑--右键--属性--硬件--设备管理器--通用串行总线控制器(或人体学 ...
- 实例讲解内连接、左连接、右连接、交叉连接、外连接以及全连接
目录 示例表: 1.内连接-inner: 实例1:内连接表a和表b 实例2:内连接表a和表c 实例3:内连接表a和表b,使用">"号 实例4:内连接表a和表b,使用" ...
- 图解SQL的连接:左连接、右连接、全连接、内连接、自然连接
SQL的连接分为三类: 外连接(包括左连接left join.右连接right join.全连接full join) 内连接 inner join 自然连接 natural join 我们来看一个超级 ...
- MySQL数据库基础(多表关联查询、内外全连接、复合条件查询、子查询)
文章目录 一.笛卡尔积查询 二.内.外.全连接查询 三.复合条件查询 四.子查询 五.EXIST判断 本篇文章主要介绍MySQL里的多表关联查询,其中包括了笛卡尔积查询.内连接查询.外连接查询.全连接 ...
- (六)MySQL数据库高阶语句之正则表达式、运算符、连接表达式JOIN
文章目录 一.正则表达式 二.运算符 1.算术运算符 2.比较运算符 3.逻辑运算符(布尔值) 4.位运算符 5.优先级 三.连接查询 1.内连接 2.左连接 3.右连接 一.正则表达式 MySQL ...
- 【转】外连接&全连接的区别
惭愧啊------学了这么久的数据库和sql语句,竟然没弄明白外连接和全连接的区别.引用文章一篇,文章说的很清楚. 计算机就是这样,不多读书就是不行,有些东西不是自己能能想出来的. 文章引用自:h ...
- 虚拟机网卡(NAT模式)设置连接外网
虚拟机网卡(NAT模式)设置连接外网 一.虚拟机VMWare三种网络模式 1.Bridged(桥接模式) 桥接模式相当于虚拟机和主机在同一个真实网段,VMWare充当一个集线器功能(一根网线连到主机相 ...
- 【计算机视觉与深度学习】全连接神经网络(一)
计算机视觉与深度学习系列博客传送门 [计算机视觉与深度学习]线性分类器(一) [计算机视觉与深度学习]线性分类器(二) 目录 从线性分类器到全连接神经网络 全连接神经网络的权值 全连接神经网络与线性不 ...
最新文章
- apktoolkit apk反编译没有文件_重新编译mono——修改apk中Assembly-CSharp.dll并重新打包...
- CVPR Oral:我给大家表演一个无中生有|北航商汤耶鲁
- python设计模式(三):原型模式—快速实例化类的一种途径
- 加密解密、食谱、新冠序列,各种有趣的开源项目Github上都有
- Angular CLI的简单使用(1)
- 爬虫、网页测试 及 java servlet 测试框架等介绍
- Kotlin——初级篇(一):最详细的环境搭建
- 《单词的减法》state1~state17(第一遍学习记录)
- 使用Hex2Bin软件将Hex文件转Bin文件
- selenium之时间日期控件的处理
- HttpHeaders()无法调用
- 美元兑人民币汇率对黄金价格的预测
- java ocr引擎_java 实现 OCR 图片文字识别
- mybatis-Plus自动生成代码
- 5G NR 基础原理与关键技术
- linux中nginx安装前置条件以及安装流程,非常简单
- 第五次面试----中软国际有限公司
- 磁盘数据线接触不良的故障排查
- 高速公路数字孪生3D场景制作全流程记录【Blender + UE4】
- java是面向对象还是面向过程_Java教程分享Java面向对象与面向过程
热门文章
- 论文(二):AlexNet
- WORDLE猜词辅助器
- 【tip】关于numLock“失灵”,按动之后指示灯不亮,无法解锁小键盘问题
- 机械键盘连键测试软件,【机械键盘 ROG Strix ScopeAPP体验】监测|连接|控制|设置_摘要频道_什么值得买...
- 【ESP8266】ESP8266和ESP32入门资源总结
- WebApi 将 DataRow、DataTable转换成JObject返回
- Android加载三维模型
- JS学习笔记 (四) 数组进阶
- 配置软RAID与逻辑卷
- 一种新型高收益P2P借贷方式——有利网