SQL的左联,右联,内联的关系

article/2025/9/17 21:33:34

相信很多人在刚开始使用数据库的INNER JOIN、LEFT JOIN和RIGHT JOIN时,都不太能明确区分和正确使用这三种JOIN操作,本文通过一个简单的例子通俗易懂的讲解这三者的区别,希望对大家能带来帮助。

首先,我们创建示例数据库和表。同时也要明确一个概念:A INNER/LEFT/RIGHT JOIN B操作中,A表被称为左表,B表被称为右表。

创建示例数据库school,在数据库school下创建两张示例表:STUDENT、PUNISHMENT。

创建学生基本信息表STUDENT,如下:

创建学生违纪处罚记录表PUNISHMENT,如下:

注意,为了测试这三种JOIN操作的不同,PUNISHMENT表中(上图黄色标识)2014000009这个学生ID在学生基本信息表中是不存在的,这个相当于异常数据。

示例信息已经创建完毕,那么我们来看看具体的操作有什么区别。

  • INNER JOIN操作
首先,我们看看INNER JOIN操作,我们写个SQL语句,查询学生表中哪些学生受过处分:
分析一下上面SQL语句的执行结果,我们的查询条件是“STU.STUDENT_ID=P.STUDENT_ID”,即学生表和处分表都有的STUDENT_ID的结果集,很明显,2014000002、2014000006在两表中都有,所以我们可以得出INNER JOIN操作的作用是:
INNER JOIN:根据ON字段标识出来的条件,查出关联的几张表中,符合该条件的记录,合并成一个查询结果集。
  • LEFT JOIN操作
我们写个分析LEFT JOIN操作的SQL:
分析一下执行结果,LEFT JOIN操作中,比如A LEFT JOIN B,会输出左表A中所有的数据,同时将符合ON条件的右表B中搜索出来的结果合并到左表A表中,如果A表中存在而在B表中不存在,则结果集中会将查询的B表字段值(如此处的P.PUNISHMENT字段)设置为NULL。所以,LEFT JOIN的作用是:
LEFT JOIN:从右表B中将符合ON条件的结果查询出来,合并到A表中,再作为一个结果集输出。
  • RIGHT JOIN操作
分析过LEFT JOIN了,RIGHT JOIN相信你也已经明白了,“A LEFT JOIN B ON ……”是将符合ON条件的B表搜索结果合并到A表中,作为一个结果集输出。而RIGHT JOIN刚好相反, “A RIGHT JOIN B ON ……”是将符合ON条件的A表搜索结果合并到B表中,作为一个结果集输出:

总结一下:
A INNER JOIN B ON……:内联操作,将符合ON条件的A表和B表结果均搜索出来,然后合并为一个结果集。
A LEFT JOIN B ON……:左联操作,左联顾名思义是,将符合ON条件的B表结果搜索出来,
然后左联到A表上,然后将合并后的A表输出。
A RIGHT JOIN B ON……:右联操作,右联顾名思义是,将符合ON条件的A表结果搜索出来,
然后右联到B表上,然后将合并后的B表输出。

http://chatgpt.dhexx.cn/article/Ap0tHYXO.shtml

相关文章

sql语句中内联左联右联的区别?

内联查询: inner join ... on ... ,不以谁为主,列出满足条件的查询结果集; 左联查询:left join .... on ... , 以昨表为主,列出满足条件的结果集; 右联查询:right join…

SQL内联、左联、右联、全联查询语法

概述:   联合查询效率较高,举例子来说明联合查询:内联inner join 、左联left outer join 、右联right outer join 、全联full outer join 的好处及用法。   联合查询效率较高,以下例子来说明联合查询(内联、左联、右联、全联…

mysql多表左联分组查询

在做项目的时候需要实现一个多表左联加分组查询的逻辑。 下图是前端要显示的数据: 数据来源于三张表: ETC表:cap_etc车辆表:cap_vehicleETC消费表:cap_etc_record 下图是后台的三张数据表: cap_etc: ca…

左联右联内联

left join (左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。 right join (右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。 inner join (等值连接或者叫内连接…

uniapp使用scroll-view实现菜单的左联右和右联左

左联右 <!-- 左 菜品分类--><view class"order-left"><scroll-view scroll-y"true" class"scroll-Hei" :scroll-with-animation"true" :enhanced"true":show-scrollbar"false"><block v-fo…

join操作-内联,左外联,右外联,交叉联,全联

在数据库中新建三张表格&#xff1a; T1 T2 T3 普通查询&#xff1a; select * from T1, T3 where T1.user_id T3.user_id 结果&#xff1a; --------------------------------------------------------------- join就是把两张表格等效当做一张表来查 内联(inner join)&a…

mysql的左联、右联、内联查询

内联查询&#xff1a;where会作用到两张表 左联查询&#xff1a;where作用在右表&#xff0c;左表全部数据都会被检索出来&#xff0c;右表只有满足where里面条件的才会被检索出来 右联查询&#xff1a;where作用在左表&#xff0c;右表全部数据都会被检索出来&#xff0c;左表…

SQL关联查询(左联,右联,内联,外联,自关联)

在使用数据库查询语句时&#xff0c;单表的查询有时候不能满足项目的业务需求&#xff0c;在项目开发过程中&#xff0c;有很多需求都是要涉及到多表的连接查询&#xff0c;总结一下mysql中的多表关联查询 一&#xff0c;内连接查询 是指所有查询出的结果都是能够在连接的表中…

SQL中,表之间的左联和右联是什么意思

首先来看张图片&#xff1a; 定义&#xff1a; 左联&#xff1a;首先取出A表中所有数据&#xff0c;然后再加上A、B表通过关联字段key查询到的数据 右联&#xff1a;首先取出B表中所有数据&#xff0c;然后再加上A、B表通过关联字段key查询到的数据 内联&#xff1a;查询A、…

数据库内联、左联和外联的区别

INNER JOIN&#xff08;内联&#xff09;&#xff1a;两个表a,b 相连接&#xff0c;取出符合连接条件的数据&#xff0c;数据集C LEFT JOIN&#xff08;左联&#xff09;&#xff1a;先返回左表的所有行&#xff0c;再加上符合连接条件的匹配行&#xff0c;数据集A1数据集C R…

RDD、矩阵基础——3. 矩阵、向量(Breeze、BLAS)

MLlib库底层的Vector&#xff08;向量&#xff09;、Matrix&#xff08;矩阵&#xff09;运算使用了 Breeze库和BLAS库。 Breeze库提供了相应计算的接口&#xff08;Linalg&#xff09;。 但是在MLlib里面同时也提供了Vector和Linalg等的实现。 BLAS&#xff08;线性代数运…

WARNING (theano.tensor.blas): Using NumPy C-API based implementation for BLAS functions.

&#xff08;WARNING : Using NumPy C-API based implementation for BLAS functions&#xff09;的解决方案 情况说明问题的解决第一步&#xff1a;使用CMD安装类库第二步&#xff1a;在用户目录下放置一个文件 验证 情况说明 再训练生成对抗网络GAN时&#xff0c;需要Pylear…

BLAS之GEMM和GEMV

BLAS简介 BLAS全称是Basic Linear Algebra Subprograms是规定了一套低级的执行常见线性代数操作的规范。其实现经常针对特殊的机器进行优化&#xff0c;比较著名的BLAS库有ACML, ATLAS, MKL, OpenBLAS。许多常见的数值软件均采用兼容BLAS规范的实现库来进行线性代数计算&#…

linux编译blas,科学网—Linux下安装blas和lapack包小记 - 徐博伦的博文

系统是centOS6.5&#xff0c;机器上已有gfortran编译器 从网上搜索下载blas、cblas、lapack的tar压缩文件包 1.编译blas 先解压文件 tar xvf blas.tgz cd blas #blas的解压文件夹 gfortran -c -O3 *.f #编译生成.o执行文件 ar rv libblas.a *.o #链接所有的 .o文件&#xff0…

BLAS学习

导师突然通知要开始关于blas的讨论班&#xff0c;之前甚至都没听说过blas这个词&#xff0c;又要开始新一波的锤炼小白之路了… 1. BLAS简介 首先BLAS的全称是 Basic Linear Algebra Subprograms&#xff0c;即 基础线性代数子程序库&#xff0c;其中包含了一系列基本的线性代…

android 您的手机上未安装应用程序的解决方法

android 创建桌面快捷方式的时候设置应用名称和图标是完全没有问题&#xff0c;但是点击快捷方式的时候出现“您的手机上未安装应用程序“&#xff0c;这是快捷方式的执行目标设置错误&#xff0c;也就是启动Activity。有些应用的启动Activity是欢迎界面&#xff0c;创建快捷方…

android显示应用程序未安装,如何解决安卓系统显示应用程序未安装

我们在安装软件的时候经常会遇到应用程序未安装这个问题&#xff0c;尤其是在更新软件或者是从ROM提取出来的软件会出现这样的问题。那我们该如何处理这个问题呢&#xff1f;下面我就为大家列举几个解决这种问题的办法。 产生应用程序未安装的原因 软件签名不一致。这种情况一般…

什么是android应用程序未安装,应用程序未安装,教您安卓系统应用程序未安装怎么解决...

大家在使用智能手机的时候&#xff0c;尤其是安卓系统的手机&#xff0c;在安装应用程序&#xff0c;也就是App的时候&#xff0c;有时会提示“应用程序未安装”&#xff0c;相信很多使用安卓机器的朋友都曾遇到过“应用程序未安装”的问题&#xff0c;但是懂得解决的用户并不多…

android studio AVD模拟器安装某些app出现 “app not installed(未安装应用程序)”的问题

android studio AVD模拟器安装某些app出现 “app not installed(未安装应用程序)”的问题 参考&#xff1a; 安装apk时出现INSTALL_FAILED_NO_MATCHING_ABIS&#xff1f;Android 开发之 INSTALL_FAILED 汇集表 问题说明 在为安卓模拟器中android 11版本的系统安装一些常用软…

一加5应用未安装怎么解决_应用程序未安装怎么解决 手机提示应用程序未安装解决办法...

安卓手机系统的应用繁多&#xff0c;丰富人们使用体验的同时&#xff0c;有时候还会出现种种问题&#xff0c;比如安装提示“应用程序未安装”&#xff0c;那么&#xff0c;遇见这个问题应该怎么处理呢&#xff1f;请阅读本文教程&#xff01; 手机提示应用程序未安装解决办法 …