MySQL的多表数据记录查询笔记

关系数据操作

合并查询数据记录

在MySQL中通过关键字UNION来实现并操作,即可以通过其将多个SELECT语句的查询结果合并在一起组成新的关系。

两张表,表1 和表2
在这里插入图片描述

在这里插入图片描述

带有关键字UNION的合并操作

关键字UNION会把查询结果集直接合并在一起,同时将会去掉重复数据记录

select name,sex from employee UNION select name,sex from employee_1 

在这里插入图片描述
查询出来7条数据,经过了去重

带有关键字UNION ALL的合并操作

关键字UNION ALL会把查询结果集直接合并在一起。

select name,sex from employee UNION ALL select name,sex from employee_1 

在这里插入图片描述

内连接查询

在MySQL中内连接数据查询通过SQL语句INNER JOIN...ON来实现。

select field1 field2 ...fieldn from join_tablename1 inner joinjoin_tablename2 [inner join join_tablenamen] on join_condition
自连接

内连接查询中存在一种特殊的等值连接 - 自连接,所谓自连接就是指表与其自身进行连接。

雇员表

  • empno 雇员ID
  • ename 雇员姓名
  • job 雇员职位
  • mgr 雇员上级领导ID
  • sal 雇员薪资
  • deptno 雇员部门
    在这里插入图片描述
    现在就是需要查询出雇员的上级领导是谁
select e.empno,e.ename,e.job,e.sal,l.ename as mgrname from employee e inner join employee l on e.mgr= l.empno

在这里插入图片描述

等值连接

内连接查询中的等值连接,就是在关键字ON后的匹配条件中通过关系运算符(=)来实现等值条件。

一张部门表

  • deptno 部门ID
  • deptname 部门名称

在这里插入图片描述

查询每个雇员的姓名、部门

select  e.ename,e.job,e.sal,d.deptname from employee e inner join dept d on e.deptno= d.deptno

在这里插入图片描述
上述连接也可以使用ANSI连接语法形式

select  e.ename,e.job,e.sal,d.deptname from employee e , dept d where e.deptno= d.deptno
不等连接

内连接查询中的不等连接,就是在关键字ON后的匹配条件中通过除了等于关系运算符来实现不等条件外,可以使用的关系运算符包括“>”、“>=”、“<”、“<=”和“!=”等运算符号。

外连接查询

在MySQL中,外连接查询会返回所操作表中至少一个表的所有数据记录。

select field1 field2 ...fieldn from jon_tablename1 left | right | full [outer] join join_tablename2 
on join_condition
左外连接

外连接查询中的左外连接,就是指新关系中执行匹配条件时,以关键字left join左边的表未参考表。

上述等值连接中,只有三条数据,但是如果我改成左外连接

select e.empno,e.ename,e.job,e.sal,l.ename as mgrname from employee e left join employee l on e.mgr= l.empno

在这里插入图片描述
这边没有匹配上也能全部显示出来。

右外连接

外连接查询中的右外连接,就是值新关系中执行匹配条件时,以关键字right join右边的表未参考表。但是跟左外连接是一个意思,换个位置的事情。

左外连接:

  • 左外连接以左表为基准,返回左表中的所有记录,并将符合联接条件的右表记录合并。
  • 如果左表中的记录在右表中没有匹配的记录,则右表中的列值将被设置为NULL。
    左外连接可以通过使用LEFT JOIN关键字来执行。

右外连接:

  • 右外连接以右表为基准,返回右表中的所有记录,并将符合联接条件的左表记录合并。
  • 如果右表中的记录在左表中没有匹配的记录,则左表中的列值将被设置为NULL。
    右外连接可以通过使用RIGHT JOIN关键字来执行。

总之,左外连接和右外连接的区别在于联接的基准表不同。左外连接返回左表的所有记录,而右外连接返回右表

全外连接

它将两个表中的所有记录都进行匹配,并返回包含两个表中所有记录的结果集。当两个表中的主键不匹配时,返回的结果集中会包含NULL值。

FULL JOIN的语法通常如下:

SELECT * FROM table1 FULL JOIN table2 ON table1.column = table2.column;

这将返回一个包含table1和table2中所有记录的结果集,无论是否存在匹配项。如果没有匹配项,返回的结果集中对应的列值为NULL。FULL JOIN可以用来查找两个表中的所有数据,并比较它们之间的关系。

但是我发现我的MySQL 5.7.14版本竟然不能使用。

那可以考虑这么使用

SELECT * FROM Table1 A LEFT JOIN Table2 B ON A.id=B.id
UNION
SELECT * FROM Table1 A RIGHT JOIN Table2 B ON A.id=B.id
SELECT * FROM employee A LEFT JOIN dept B ON A.deptno=B.deptno
UNION
SELECT * FROM employee A RIGHT JOIN dept B ON A.deptno=B.deptno

在这里插入图片描述

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

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

相关文章

力扣每日一题--2088. 统计农场中肥沃金字塔的数目

看到这道题有些人很容易放弃&#xff0c;其实这道题不是很难&#xff0c;主要是题目长&#xff0c;读的容易让人放弃&#xff0c;但是 只要抓住一些性质就可以解决该问题。 本题中的定义放到图像里其实就是个金字塔&#xff0c;下层的那部分比上一层的那部分&#xff0c;长度加…

What does `ResponseEntity` do?

ResponseEntity 作为 Spring MVC controller层 的 HTTP response&#xff0c;包含 status code, headers, body 这三部分。 正常场景 RestController Slf4j public class SearchController {AutowiredUserService userService;RequestMapping(value "/getAllStudents4&…

Androidmanifest文件加固和对抗

前言 恶意软件为了不让我们很容易反编译一个apk&#xff0c;会对androidmanifest文件进行魔改加固&#xff0c;本文探索androidmanifest加固的常见手法以及对抗方法。这里提供一个恶意样本的androidmanifest.xml文件&#xff0c;我们学完之后可以动手实践。 1、Androidmanife…

文心一言 vs. ChatGPT:哪个更胜一筹?

文心一言 vs. ChatGPT&#xff1a;从简洁美到深度思考的文本生成之旅 近年来&#xff0c;文本生成工具的崛起使得人们在表达和沟通方面拥有了更多的选择。在这个领域中&#xff0c;文心一言和ChatGPT作为两个备受瞩目的工具&#xff0c;各自以独特的优势展现在用户面前。本文将…

国际版WPS Office 18.6.1

【应用名称】&#xff1a;WPS Office 【适用平台】&#xff1a;#Android 【软件标签】&#xff1a;#WPS 【应用版本】&#xff1a;18.6.1 【应用大小】&#xff1a;160MB 【软件说明】&#xff1a;软件日常更新。WPS Office是使用人数最多的移动办公软件。独有手机阅读模式…

从零开始的神经网络

了解如何在没有框架帮助的情况下构建神经网络的基础知识&#xff0c;这些框架可能使其更易于使用 在 Python 中创建具有不同架构的复杂神经网络应该是任何机器学习工程师或数据科学家的标准做法。但是&#xff0c;真正了解神经网络的工作原理同样有价值。在本文中&#xff0c;…

代码随想录刷题笔记(DAY11)

今日总结&#xff1a;继续准备期末&#xff0c;今天的算法题目比较简单&#xff0c;晚上看看能不能再整理一篇前端的笔记。 Day 11 01. 有效的括号&#xff08;No. 20&#xff09; 题目链接 代码随想录题解 1.1 题目 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff…

【C++】__declspec含义

目录 一、__declspec(dllexport)如果这篇文章对你有所帮助&#xff0c;渴望获得你的一个点赞&#xff01; 一、__declspec(dllexport) __declspec(dllexport) 是 Microsoft Visual C 编译器提供的一个扩展&#xff0c;用于指示一个函数或变量在 DLL&#xff08;动态链接库&…

非常好用的个人工作学习记事本Obsidian

现在记事本有两大流派&#xff1a;Obsidian 和Notion&#xff0c;同时据说logseq也很不错 由于在FreeBSD下后两种都没有相关ports&#xff0c;所以优先尝试使用Obsidian Obsidian简介 Obsidian是基于Markdown文件的本地知识管理软件&#xff0c;并且开发者承诺Obsidian对于个…

2024年腾讯云服务器配置价格表(机型/磁盘/宽带/CPU)

腾讯云服务器租用价格表&#xff1a;轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月&#xff0c;云服务器CVM S5实例2核2G配置280.8元一年…

Swoft - Bean

一、Bean 在 Swoft 中&#xff0c;一个 Bean 就是一个类的一个对象实例。 它(Bean)是通过容器来存放和管理整个生命周期的。 最直观的感受就是省去了频繁new的过程&#xff0c;节省了资源的开销。 二、Bean的使用 1、创建Bean 在【gateway/app/Http/Controller】下新建一个名为…

Vue + JS + tauri 开发一个简单的PC端桌面应用程序

Vue JS tauri 开发一个简单的PC端桌面应用程序 文章目录 Vue JS tauri 开发一个简单的PC端桌面应用程序1. 环境准备1.1 安装 Microsoft Visual Studio C 生成工具[^2]1.2 安装 Rust[^3] 2. 使用 vite 打包工具创建一个 vue 应用2.1 使用Vite创建前端Vue项目2.2 更改Vite打包…

jmeter--常用插件及服务器监控(14)

一.jmeter插件管理器 下载jmeter插件管理器&#xff1a;plugins-manager.jar 下载plugins-manager.jar并将其放入lib/ext目录&#xff0c;然后重启JMeter。 插件管理界面 打开选项->Plugins Manager&#xff08;界面见下图&#xff09;&#xff0c;“Installed Plugns”…

牛客周赛 Round 3 解题报告 | 珂学家 | 贪心思维场

前言 寒之不寒无水也&#xff0c;热之不热无火也。 整体评价 感觉比较简单&#xff0c;更加侧重于思维吧。和前几场的Round系列&#xff0c;风格不太一样。 A. 游游的7的倍数 因为连续7个数&#xff0c;比如有一个数是7的倍数 因此从个位数中着手添加&#xff0c;是最好的选…

了解Dubbo配置:优先级、重试和容错机制的秘密【五】

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 了解Dubbo配置&#xff1a;优先级、重试和容错机制的秘密【五】 前言Dubbo高级配置概述不同配置覆盖关系重试与容错处理机制负载均衡机制 前言 Dubbo作为一款强大的分布式服务框架&#xff0c;其高级…

2024.1.8 关于 Redis 数据类型 Zset 集合命令、编码方式、应用场景

目录 引言 Zset 集合命令 ZINTERSTORE ZUNIONSTORE Zset 编码方式 Zset 应用场景 排行榜系统 引言 在 Redis 中集合间操作无非就是 交集、并集、差集 Set 类型与之相对应的操作命令为 sinter、sunion、sdiff 注意&#xff1a; 从 Redis 6.2 版本开始&#xff0c;Zset 命…

复选框QCheckBox和分组框QGroupBox

1. 复选框&#xff1a;QCheckBox 实例化 //实例化 // QCheckBox* checkBox new QCheckBox("是否同意该条款",this);QCheckBox* checkBox new QCheckBox(this);1.1 代码实现 1.1.1 复选框的基本函数 复选框选中状态的参数 Qt::Unchecked //未选中状态 Qt::Part…

我的NPI项目之设备系统启动(三) -- CDT的一个实例

上面说了这么多&#xff0c;这里就添加一个CDT的使用实例和简单的代码解析。 首先生成cdt_configure.xml配置文件&#xff0c;然后执行如下命令&#xff1a; python cdt_generator.py cdt_configure.xml CDT.bin; 就可以生成对应的CDT.bin文件。同时也会生成, 我们会利用ha…

NLP论文阅读记录 - 2021 | WOS 利用 ParsBERT 和预训练 mT5 进行波斯语抽象文本摘要

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.前提三.本文方法A. 序列到序列 ParsBERTB、mT5 四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结思考 前言 Leveraging ParsBERT and Pretrained …

【EAI 006】ChatGPT for Robotics:将 ChatGPT 应用于机器人任务的提示词工程研究

论文标题&#xff1a;ChatGPT for Robotics: Design Principles and Model Abilities 论文作者&#xff1a;Sai Vemprala, Rogerio Bonatti, Arthur Bucker, Ashish Kapoor 作者单位&#xff1a;Scaled Foundations, Microsoft Autonomous Systems and Robotics Research 论文原…