当前位置:网站首页>SQL——左连接(Left join)、右连接(Right join)、内连接(Inner join)
SQL——左连接(Left join)、右连接(Right join)、内连接(Inner join)
2022-08-03 05:28:00 【m0_67401746】
文章目录
前言
最近在做SQL相关的练习,发现以前那么自信的SQL放久了不碰也变得棘手起来,特别是这一块表之间的内外连接。所以这篇是关于这个内外连接的整理。
一、概念
首先还是介绍一下这三个的定义
1.Left join:即左连接,是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。
2.Right join:即右连接,是以右表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将右表所有的查询信息列出,而左表只列出ON后条件与右表满足的部分。右连接全称为右外连接,是外连接的一种。
3.Inner join:即内连接,同时将两表作为参考对象,根据ON后给出的两表的条件将两表连接起来。结果则是两表同时满足ON后的条件的部分才会列出。
MySQL中没有全外连接,所以这里没做解释了。
二、例子
表table_a

表table_b

------------------------------------------------------分割线-----------------------------------------------------------------
Left join:左连接
SQL语句:
select *from table_a left join table_b on table_a.id=table_b.id;
结果:

Right join:右连接
SQL语句:
select * from table_a right join table_b on table_a.id=table_b.id;
结果:
Inner join:内连接
SQL语句:
select * from table_a inner join table_b on table_a.id=table_b.id;
结果:
总结
根据上面的栗子,看起来是不是清晰明了多了,而且也更有对比性了。如果还是觉得只是这会儿懂了,但是用起来还是觉得有点难的话,就下面这种集合思维,大头也是最近才发现,这样想的话就会简单很多了。
我们有两个表:A和B,那么就分别将其当做一个集合
那么我们的左右外连接和内连接就相当于变成了这样↓↓↓
A Left join B-> A (根据返回需求 需连接上B中与A等条件的部分)
A Right join B -> B(根据返回需求 需连接上A中与B等条件的部分)
A Inner join B -> A∩B(根据返回需求 需连接上A与B等条件的部分)

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢
随机推荐
一家可靠的HDI板厂,需要具备哪些基本条件?
C#通过WebBrowser对网页截图
2021-06-20
Migration of BOA Server
C # program with administrator rights to open by default
快速理解JVM+GC
高密度 PCB 线路板设计中的过孔知识
go test执行多个文件夹下相同目录的用例
Unity Animation从UAS获取动画资产到编制状态机控制简单的人物动画
看了都收藏的3D游戏建模全流程解析,角色模型就该这么做!
Prometheus monitors container, pod, email alerts
AQS、CAS、Synchronized小理解
域名注册流程:如何选择购买合适的域名?
cnpm的安装与使用
appium(3)webview测试
./autogen.sh: 4: ./autogen.sh: autoreconf: not found
802.1AS 时钟同步原理理解
ESXI主机给虚拟机添加USB加密狗设备
JDBC从手写连接到引用DBCP和C3P0
find命令、sort命令、uniq命令









