Mysql 复杂查询丨联表查询

💗wei_shuo的个人主页
💫wei_shuo的学习社区
🌐Hello World !
JOIN(联表查询)
联表查询(Join)是一种在数据库中使用多个表进行关联查询的操作。它通过使用 JOIN 关键字将多个表连接在一起,并根据关联条件从这些表中检索数据
INNER JOIN(内连接)
内连接(Inner Join)是一种在联表查询中使用的链接方式,它返回满足关联条件的行
语法
SELECT 列表
FROM 左表
INNER JOIN 右表 ON 关联条件;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l1Ociimq-1689851063423)(./image-20230720102802654.png)]
- 表A:
ID Name --------- 1 John 2 Mary 3 David
- 表B:
ID Age -------- 1 30 2 25 4 40
- 内连接,可以根据ID列将表A和表B进行关联,并返回满足关联条件的行:
SELECT A.ID, A.Name, B.Age FROM A INNER JOIN B ON A.ID = B.ID;
- 结果集:
ID Name Age -------------- 1 John 30 2 Mary 25
LEFT JOIN(左连接)
左连接(Left Join)是一种在联表查询中使用的链接方式,返回左表中的所有行,以及右表中满足关联条件的匹配行
语法
SELECT 列表
FROM 左表
LEFT JOIN 右表 ON 关联条件;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7zbJ5fjC-1689851063424)(./image-20230720102956745.png)]
- 表A:
ID Name --------- 1 John 2 Mary 3 David
- 表B:
ID Age -------- 1 30 2 25 4 40
- 左连接,可以根据ID列将表A和表B进行关联,并返回满足关联条件的行:
SELECT A.ID, A.Name, B.Age FROM A LEFT JOIN B ON A.ID = B.ID;
- 结果集:
ID Name Age -------------- 1 John 30 2 Mary 25 3 David NULL左连接返回了表A中的所有行,以及与表B中的ID匹配的行。由于表B中没有ID为3的行,所以返回的Age列为NULL
RIGHT JOIN(右连接)
右连接(Right Join)是一种在联表查询中使用的链接方式,它返回右表中的所有行,以及左表中满足关联条件的匹配行
语法
SELECT 列列表
FROM 左表
RIGHT JOIN 右表 ON 关联条件;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7ax5cLC4-1689851063424)(./image-20230720102817963.png)]
- 表A:
ID Name --------- 1 John 2 Mary 3 David
- 表B:
ID Age -------- 1 30 2 25 4 40
- 右连接,可以根据ID列将表A和表B进行关联,并返回满足关联条件的行:
SELECT A.ID, A.Name, B.Age FROM A RIGHT JOIN B ON A.ID = B.ID;
- 结果集:
ID Name Age -------------- 1 John 30 2 Mary 25 NULL NULL 40右连接返回了表B中的所有行,以及与表A中的ID匹配的行。由于表A中没有ID为4的行,所以返回的ID和Name列为NULL
FULL JOIN(全连接)
全连接(Full Join)是一种在联表查询中使用的连接方式,它返回左表和右表中的所有行,并将它们按照关联条件进行匹配
语法
SELECT 列列表
FROM 左表
FULL JOIN 右表 ON 关联条件;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AIDCAe56-1689851063425)(./image-20230720102904341.png)]
- 表A:
ID Name --------- 1 John 2 Mary 3 David
- 表B:
ID Age -------- 1 30 2 25 4 40
- 全连接,可以将表A和表B进行关联,并返回左表和右表中的所有行:
SELECT A.ID, A.Name, B.Age FROM A FULL JOIN B ON A.ID = B.ID;
- 结果集:
ID Name Age -------------- 1 John 30 2 Mary 25 3 David NULL NULL NULL 40全连接返回了表A和表B中的所有行。由于表A中没有ID为4的行,所以返回的ID、Name和Age列为NULL;同样地,由于表B中没有ID为3的行,所以返回的ID、Name和Age列也为NULL
Cross Join(交叉连接)
交叉连接(Cross Join),也称为笛卡尔积(Cartesian Product),是一种在联表查询中使用的连接方式;返回两个表的所有可能组合,即将左表的每一行与右表的每一行进行组合
语法
SELECT 列列表
FROM 左表
CROSS JOIN 右表;
- 表 A:
| ID | Name | |----|-------| | 1 | John | | 2 | Mary | | 3 | David |
- 表 B:
| ID | Department | |----|------------| | 1 | Sales | | 2 | Marketing |
- 交叉连接表 A 和表 B,我们得到了所有可能的组合
SELECT A.ID, A.Name, B.Department FROM A CROSS JOIN B;
- 结果集:
| ID | Name | Department | |----|-------|------------| | 1 | John | Sales | | 1 | John | Marketing | | 2 | Mary | Sales | | 2 | Mary | Marketing | | 3 | David | Sales | | 3 | David | Marketing |
🌼 结语:创作不易,如果觉得博主的文章赏心悦目,还请——
点赞👍收藏⭐️评论📝

相关文章:
Mysql 复杂查询丨联表查询
💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! JOIN(联表查询) 联表查询(Join)是一种在数据库中使用多个表进行关联查询的操作。它通过使用 JOIN 关键字将多个表连接在…...
C语言进阶第二课-----------指针的进阶----------升级版
作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 🎂 作者介绍: 🎂🎂 🎂 🎉🎉🎉…...
若依vue -【 111 ~ 更 ~ 127 完 】
【更】111 3.5.0版本更新介绍 112 使用docker实现一键部署 1、安装docker yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm yum install -y yum-utils device-mapper-persistent-data lvm2 yum-c…...
vue-pc端实现按钮防抖处理-自定义指令
前言 我们经常在移动端会处理按钮和输入框的防抖和节流处理,在pc端很少进行这样的操作 但是在pc端也是可以进行按钮的防抖操作,这样也是比较合理,可以不用但不可以不会 我们只要配合vue项目自定义指令加上全局注册,就可以实现按…...
python解决8皇后问题
def is_valid(queens, row, col):for i in range(row):if queens[i] == col or abs(queens[i] - col) == abs(i - row):return Falsereturn Truedef solve_n_queens(n, row, queens, result):if row == n:result.append(queens[:]) # 将当前解添加到结果中returnfor col in ra…...
xcode打包导出ipa
转载:xcode打包导出ipa 目录 转载:xcode打包导出ipa 第一步:注册苹果开发者账号 第二步:下载APP Uploader 第三步:使用xcode打包导出ipa文件,供其他人内测 众所周知,在开发苹果应用时需要使…...
更优雅地调试SwiftUI—借助LLDB
更优雅地调试SwiftUI—借助LLDB 概述 你是否写过这样的代码: struct ContentView: View {@State private var mySize: CGFloat = 15.0var myString: String = "Hi LLDB"var myArray: [Int] = [1, 2, 3]var body: some View {VStack {Text("Hello World"…...
2.4 网络安全新技术
数据参考:CISP官方 目录 云计算安全大数据安全移动互联网安全物联网安全工业互联网安全 一、云计算安全 1、云计算定义 云计算是指通过网络访问可扩展的、灵活的物理或虚拟共享资源池,并按需自助获取和管理资源的模式。在云计算中,计算资…...
人生天地之间,若白驹之过隙,忽然而已
人生天地之间,若白驹之过隙,忽然而已 这段时间有个同事离职了,其实身边不断有老人走、有新人来,但这回走的同事和别的有些不同,当时我入职面试的时候就是他面试的我,工作中有啥问题都会请教他,…...
MySQL — MVCC
文章目录 MVCCMVCC 实现原理隐藏字段undo logundo log的用途undo log类型 版本链ReadView MVCC InnoDB是一个多版本的存储引擎。它保留有关已更改行的旧版本的信息,以支持并发和回滚等事务性特性。这些信息存储在undo表空间中的数据结构称为回滚段。InnoDB使用回滚…...
Android模板设计模式之 - 构建整个应用的BaseActivity
1. 模式介绍 模式的定义 定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模式的使用场景 1.多个子类有公有的方法,并且逻辑基本相同时。 2.重要、复杂的算法,可…...
浏览器缓存技术--localStorage和sessionStorage原理与使用
localStorage和sessionStorage LocalStorageLocalStorage的特点存入/读取数据使用场景 sessionStoragesessionStorage的特点存入/读取数据使用场景sessionStorage 、localStorage 和 cookie 之间的区别 测试localStorage和sessionStorageIndexedDB LocalStorage 为了弥补 Cook…...
无涯教程-Perl - endservent函数
描述 此功能告诉系统您不再期望使用getservent从服务文件中读取条目。 语法 以下是此函数的简单语法- endservent返回值 此函数不返回任何值。 例 以下是显示其基本用法的示例代码- #!/usr/bin/perlwhile(($name, $aliases, $port_number,$protocol_name)getservent())…...
MRO工业品采购过程中,采购人员要注意哪些事项
MRO工业品指工厂或企业对其生产和工作设施、设备进行保养、维修,保证其运行所需要的非生产性物料,这些物料可能是用于设备保养、维修的备品备件,也可能是保证企业正常运行的相关设备,耗材等物资,如安全防护、传媒广电、…...
Jaeger 教程,OpenTelemetry 教程
ywanbing/otelToJaeger: opentelemetry 的链路追踪写入Jaeger中,使用的例子,拉下来就能跑(你已经部署好Jaeger的环境) (github.com) 上面是一个使用 OpenTelemetry trace 的一个源码。...
P1597 语句解析
题目背景 木有背景…… 题目描述 一串长度不超过 255 255 255 的 PASCAL 语言代码,只有 a , b , c a,b,c a,b,c 三个变量,而且只有赋值语句,赋值只能是一个一位的数字或一个变量,每条赋值语句的格式是 [变量]:[变量或一位整数…...
Java课题笔记~ Request请求
1.请求消息格式 客户端发送一个HTTP请求到服务器的请求消息包括以下格式: 请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。下图给出了请求报文的一般格式。 GET请求: POST请求&am…...
Untiy Json和Xml的序列化和反序列化
Json的序列化和反序列化 1.定义数据类 [Serializable] public class ZoomPoint {// 点名称, 将作为Key被字典存储public string name;// 轴心X坐标public Vector2 pivot Vector2.one / 2;// 放大倍率,小于1是为缩小倍率,小于0是取绝对值,不…...
springboot在线小说阅读网站的设计与实现
网站首页: 用户登录/注册:用户注册时进行用户名及笔名存在的限制热门小说推荐:显示小说名及作者名,点击进入对应小说小说类别:玄幻,武侠,言情,历史等,点击对用分类到分类…...
整理mongodb文档:改
个人博客 整理mongodb文档:改 求关注,求批评,求进步 文章概叙 本文主要讲的是mongodb的updateOne以及updateMany,主要还是在shell下进行操作,也讲解下主要的参数upsert以及更新的参数。 数据准备 本次需要准备的数据不是很多…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
