当前位置:网站首页>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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢
nodeJs--querystring模块
Kotlin入门介绍篇
Data Middle Office Construction (6): Data System Construction
js implements the 2020 New Year's Day countdown bulletin board
loadrunner-Controller负载测试-各模块功能记录01测试场景设计
darknet 源码阅读笔记-01-activation_kernels.cu
可以用聚酯树脂将接线板密封接线盒吗?(接线盒灌封胶用哪种树脂)
djangoWeb应用框架+MySQL数据4
win10镜像下载
SQLite3交叉编译
随机推荐
感情危机,朋友的网恋女友要和他闹分手,问我怎么办
FCN中制作自己的数据集并进行训练
loadrunner脚本--添加事务
Redis Cluster - Sentinel Mode Principle (Sentinel)
Simple understanding of GCD
loadrunner脚本--添加集合点
内联元素居中
loadrunner脚本--添加检查点
Kotlin—基本语法 (五)
Echart饼图添加轮播效果
loadrunner-Controller负载测试-各模块功能记录01测试场景设计
NowCoderTOP23-27二叉树遍历——持续更新ing
darknet 硬件软件环境的设置和检测
【LeetCode】242. 有效的字母异位词
Qt compile error: C2228: '.key' must have class/struct/union on the left
OpenGL es 导读篇
djangoWeb应用框架+MySQL数据4
OpenGL es 初识
odoo14 | 附件上传功能及实际使用
【LeetCode】21. 合并两个有序链表