当前位置:网站首页>SQL——左连接(Left join)、右连接(Right join)、内连接(Inner join)
SQL——左连接(Left join)、右连接(Right join)、内连接(Inner join)
2022-07-31 10:09:00 【xiaoweiwei99】
文章目录
前言
最近在做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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢

Implement a thread pool

Web系统常见安全漏洞介绍及解决方案-CSRF攻击

VMware下安装win10

单点登录的三种方式

Day113. Shangyitong: user authentication, Alibaba Cloud OSS, patient management

The big-eyed Google Chrome has also betrayed, teach you a trick to quickly clear its own ads

nodeJs--querystring模块

因存在自燃安全隐患,宝马7系和5系紧急召回,合计超过5.7万辆

【职场杂谈】售前工程师岗位的理解杂谈

loadrunner脚本--添加检查点
随机推荐
darknet 源码阅读笔记-01-activation_kernels.cu
[ verb phrase ] collection
如何优雅的停止一个线程?
让动画每次重复前都有延迟
迪拜的超市---线段树双重懒标记+二分
loadrunner脚本--添加检查点
Centos7 install mysql5.7
第六章
Redis Sentinel原理
细讲DDD领域驱动设计
NowCoderTOP17-22 Binary search/sort - continuous update ing
Progressive Web App(PWA)
loadrunner-controller-目标场景Schedule配置
loadrunner-controller-场景执行run
ReentrantLock
Principle of Redis Sentinel
C#之泛型、委托、事件及其使用
NowCoderTOP23-27 Binary tree traversal - continuous update ing
NowCoderTOP17-22 二分查找/排序——持续更新ing
Dart Log tool class