MySQL中多表查询之外连接

 首先先来介绍一下我做的两个表,然后再用他们两个举例说明。

-- 创建教师表
create table teachers(
id_t int primary key auto_increment, -- 老师编号
name_t varchar(5) -- 姓名
);
-- 创建学生表
create table students(
id_s int primary key auto_increment, -- 编号
name_s varchar(5), -- 姓名
gender_s char(1), -- 性别
age_s int, -- 年龄
admission_date date, -- 入学日期
teacher_s int -- 教学老师
);

这是学生表

这是教师表

 

外连接

其中外连接又分为左外连接和右外连接。

其实这两个都可以查表1 表2的所有数据,那他们具体有什么不一样呢

左外连接(LEFT JOIN)会返回左表中的所有记录,无论它们是否在右表中找到匹配的记录。如果在右表中没有找到匹配的记录,则结果集中右表的字段将为NULL。

右外连接(RIGHT JOIN)与左外连接正好相反,它会返回右表中的所有记录,无论它们是否在左表中找到匹配的记录。如果在左表中没有找到匹配的记录,则结果集中左表的字段将为NULL。

那我们先给这个表加一行存在null值的数据。

insert into students values (8,'胡二','女',19,'2021-9-1',null);

-- 右外连接
select * from teachers  t1 right join students s1 on t1.id_t = s1.teacher_s;

-- 左外连接
select * from teachers  t1 left join students s1 on t1.id_t = s1.teacher_s;

以上我们可以看出,左右外连接是由左右表作为主体全部显示的,如果这时另一个表没有主体表的值,那么主体表全部显示,另一个表全部显示null值或不存在(我貌似说不清,反正看一看上面例子就可以清楚了)

========================================================

我们具体再实验一下如果没有null值的查询结果吧

-- 右外连接
select * from teachers  t1 right join students s1 on t1.id_t = s1.teacher_s;

-- 左外连接
select * from teachers  t1 left join students s1 on t1.id_t = s1.teacher_s;

我们可以清晰的看出来这两个的查询结果一样,但是顺序却不同。

将t1看作左表,s1看作右表

查询出左右顺序,是按你写的查询语句左右表的位置来说的(就是见上语句,t1在左,s1在右,所以查询出来的结果就是教师表在学生表的右边)

右外连接:右边的表是主体,是按s1的主键安排的序

左外连接:左边的表是主体,是按t1的主键安排的序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/876460.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构——单链表OJ题(下)

目录 一、链表的回文结构 思路一:数组法 (1)注意 (2)解题 思路二:反转链表法 (1) 注意 (2)解题 二、相交链表 (1)思路&#…

优化算法:1.遗传算法(GA)及Python实现

一、定义 遗传算法就像是在模拟“优胜劣汰”的进化过程,通过选择最优秀的个体,交配产生下一代,并引入一定的变异,逐步优化解决问题。 二、具体步骤 初始化种群(Initialization): 假设你要找到一个迷宫的最佳出口路径。…

CTF-NSSCTF[GKCTF 2021]

[GKCTF 2021]easycms 考察: 用扫描工具扫描目录,扫描到后台登录界面/admin.php 题目提示了密码是五位弱口令,试了试弱口令admin和12345直接成功了 任意文件下载 点击设计-->主题然后随便选择一个主题,点击自定义&#xff0…

故障诊断 | 基于Transformer故障诊断分类预测(Matlab)

文章目录 预测效果文章概述程序设计参考资料预测效果 文章概述 Transformer故障诊断/分类预测 | 基于Transformer故障诊断分类预测(Matlab) Transformer 模型本质上都是预训练语言模型,大都采用自监督学习 (Self-supervised learning) 的方式在大量生语料上进行训练,也就是…

CTF之网站被黑

简单看一下网页和源码没发现什么明显漏洞 那就扫描一下目录 发现了/shell.php文件,访问一下,发现是一个后台管理登录页面 别无他法只能爆破喽,爆破后发现密码是hack flag{25891d9e9d377f006eda3ca7d4c34c4d}

@JSONField(format = “yyyyMMddHH“)的作用和使用

JySellerItqrdDataDO对象中的字段为: private Date crdat; 2.数据库中的相应字段为: crdat datetime DEFAULT NULL COMMENT 创建时间,2. 打印出的结果为: “crdat”:“2024072718” 年月日时分秒 3. 可以调整format的格式 4. 这样就把Date类…

RedHat8安装Oracle19C

RedHat8安装Oracle19C 1、 更新yum源 更新yum源为阿里云镜像源: # 进入源目录 cd /etc/yum.repos.d/ # 删除 redhat 默认源 rm redhat.repo # 下载阿里云的centos7源 curl -O http://mirrors.aliyun.com/repo/Centos-8.repo # 替换 Centos-8.repo 中的 $releasev…

Rust:在Ubuntu22.04上安装

1.官方的安装方法: $ curl --proto https --tlsv1.2 https://sh.rustup.rs -sSf | sh 尝试后由于网络原因,无法顺利安装 2.使用国内源进行安装 首先在终端里执行 $ curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs > rust.sh 然后编辑rust.…

初学Mybatis之 Lombok 篇

idea 安装 Lombok 插件&#xff1a; File->Settings->Plugins->搜索 lombok 下载 在项目中导入 lombok 的 jar 包&#xff1a; <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.…

C语言程序设计之数学函数篇

程序设计之数学函数 问题1_1代码1_1结果1_1 问题1_2代码1_2结果1 _2 问题1_3代码1_3结果1_3 问题1_1 函数 f u n fun fun 的功能是计算&#xff1a; s ln ⁡ ( 1 ) ln ⁡ ( 2 ) ln ⁡ ( 3 ) ⋯ ln ⁡ ( n ) s\sqrt{\ln(1)\ \ \ln(2)\ \ \ln(3)\ \ \cdots \ \ \ln(n)\ } …

C#中导出dataGridView数据为Excel

C#中导出dataGridView数据为Excel #region 导出Excel功能函数 /// <summary> /// dataGridView 导出Excel功能函数 /// </summary> /// <param name"dataView">dataGridView数据表</param> /// <param name"filePath">路径…

ReentrantReadWriteLock详解

目录 ReentrantReadWriteLock详解1、ReentrantReadWriteLock简介2、ReentrantReadWriteLock类继承结构和类属性3、ReentrantReadWriteLock的读写锁原理分析4、ReentrantReadWriteLock.WriteLock类的核心方法详解非公平写锁的获取非公平写锁的释放公平写锁的获取公平写锁的释放 …

win11查找句柄泄露

1.打开任务管理器&#xff0c;不会的网上搜 2.选择详细信息 3.注意了 比较坑的一点 win11上详细信息不会默认显示句柄数。&#xff08;默认没有句柄那一列&#xff0c;妈的花了我好长时间找&#xff09; 右键&#xff0c;点击选择列 选择句柄 下面的列表里就能看到进程使用…

【嵌入式】学习路线

嵌入式系统是一种专门为特定任务设计的计算系统&#xff0c;通常嵌入在其他设备中。要学习嵌入式系统&#xff0c;以下是一个系统化的学习路线图&#xff1a; 1. 基础知识 编程语言 C语言&#xff1a;嵌入式开发的主要语言。汇编语言&#xff1a;了解硬件层面的编程。C&#…

显著提升“视触觉传感器耐磨性”的贴金工艺,在植物和古生物化石检测上取得良好的识别效果

贴金&#xff0c;一种古老的技艺&#xff0c;是中华民族民间传统工艺的瑰宝&#xff01;金箔和贴金工艺的结合让朴实无华的工艺品重获新生。正如《天工开物》所述&#xff1a;“凡色至于金&#xff0c;为人间华美贵重&#xff0c;故人工成箔而后施之”。这项古老技艺如今可用于…

PyCharm 常用 的插件

Material Theme UI Lite&#xff1a;‌提供多种不同的页面风格&#xff0c;‌为PyCharm界面增添个性化元素。‌Chinese (Simplified) Language Pack&#xff1a;‌为中文用户提供简体中文的界面、‌菜单、‌提示信息&#xff0c;‌提升使用体验。‌Tabnine&#xff1a;‌基于人…

SSA-GRU(自适应平滑自回归门控循环单元)预测模型及其Python和MATLAB实现

SSA-GRU&#xff08;自适应平滑自回归门控循环单元&#xff09;预测模型是结合了SSA&#xff08;Singular Spectrum Analysis&#xff0c;奇异谱分析&#xff09;和GRU&#xff08;Gated Recurrent Unit&#xff0c;门控循环单元&#xff09;模型的一种时间序列预测方法。以下是…

原生JavaScript系列面试题

大家好&#xff0c;我是有用就点赞&#xff0c;有用就扩散。 1.__ proto __ 和prototype之间有什么关系&#xff1f; 在JavaScript中万物皆对象&#xff0c;所有对象都有__ proto __ 属性&#xff0c;函数这个特殊对象除了具有__ proto __ 属性&#xff0c;还有特有的原型属性…

Harmony学习(三)

1.模版字符串 let name:string 模版字符串 let age:number 18 console.log(字符串:,${name}和${age})2.字符串和数字互相转换 //字符串转数字 let str1:string 1.1 console.log(转换,Number(str1)) //output: 1.1 console.log(转换,parseInt(str1)) //output: 1 conso…

3.k8s:服务发布:service,ingress;配置管理:configMap,secret,热更新;持久化存储:volumes,nfs,pv,pvc

目录​​​​​​​ 一、服务发布 1.service &#xff08;1&#xff09;service和pod之间的关系 &#xff08;2&#xff09; service内部服务创建访问 &#xff08;3&#xff09;service访问外部服务 &#xff08;4&#xff09;基于域名访问外部 &#xff08;5&#xff…