当前位置:网站首页>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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- cnpm的安装与使用
- 2. What is the difference between Exception and Error?
- Oracle常用命令-基本命令
- ESXI主机给虚拟机添加USB加密狗设备
- 【个人总结】MES系统开发/管理要点
- Command errored out with exit status 1类似问题解决方案
- 小程序动态加载分包文件及根路径处理
- 【dllogger bug】AttributeError: module ‘dllogger‘ has no attribute ‘StdOutBackend‘
- 【面试】摸鱼快看:关于selenium/ui自动化的面试题
- 看了都收藏的3D游戏建模全流程解析,角色模型就该这么做!
猜你喜欢
【云原生 · Kubernetes】Kubernetes简介及基本组件
ZBrush+Substance Designer2021制作高品质3D角色模型全流程!
二层交换机,三层交换机,路由器内容总结记录
超全!9种PCB表面处理工艺大对比
Prometheus monitors container, pod, email alerts
【个人总结】MES系统开发/管理要点
【入职第一篇知识总结- Prometheus】
【Personal summary】Key points of MES system development/management
【测试基础】bug分级、测试流程、ISO9126质量模型
IP数据包的格式(1)
随机推荐
超全!9种PCB表面处理工艺大对比
嘿!selenium自动下载driver版本,得知道一下
C#使用Oracle.ManagedDataAccess连接C#数据库
restful 常用状态码
沉铜/黑孔/黑影工艺,PCB该 Pick 哪一种?
【记录】把json的所有key转换成小写
AQS、CAS、Synchronized小理解
【Personal summary】Key points of MES system development/management
【云原生 · Kubernetes】Kubernetes基础环境搭建
go test执行多个文件夹下相同目录的用例
国内首款PCB资料分析软件,华秋DFM使用介绍
权限管理 UGO 、 ACL 、特殊权限
阿里云短信服务的使用(创建,测试笔记)
QT 连续生成指定范围内不重复的随机值
xshell报错-要继续使用此程序,您必须应用最新的更新或使用新版本
SVN客户端安装及操作文档
C # to switch input method
【英语单词】常见深度学习中编程用到的英语词汇
【云原生 · Kubernetes】搭建Harbor仓库
cnpm的安装与使用