当前位置: 首页 > news >正文

MySQL子查询

😇作者介绍:一个有梦想、有理想、有目标的,且渴望能够学有所成的追梦人。

🎆学习格言:不读书的人,思想就会停止。——狄德罗

⛪️个人主页:进入博主主页

🗼专栏系列:进入MySQL专栏知识

🌼欢迎小伙伴们访问到博主的文章内容,在浏览阅读过程发现需要纠正的地方,烦请指出,愿能与诸君一同成长!

目录

文章内容如下

✏️前言

✏️一、where子句中使用子查询

✏️二、from子句中使用子查询:

✏️三、select子句中使用子查询

✏️四、having子句中使用子查询

✏️五、exists和not exists运算符

✏️总结


文章内容如下


✏️前言

MySQL子查询是指在一个SQL语句中嵌套使用的查询语句。子查询可以出现在SELECT、FROM、WHERE、HAVING和IN等语句中,并且能够根据外部查询的结果动态生成数据。

使用子查询可以实现更复杂的查询逻辑,它可以用来过滤、排序、聚合或连接数据。子查询通常会返回一个结果集,然后将该结果集用于外层查询的条件或操作。


✏️一、where子句中使用子查询

🧐返回年龄大于平均年龄的学生姓名和年龄。

SELECT name, age
FROM students
WHERE age > (SELECT AVG(age) FROM students);

👉这个查询就会返回年龄大于平均年龄的学生姓名和年龄。WHERE语句中的子查询:“子查询可以作为WHERE子句的一部分,用于过滤数据”


✏️二、from子句中使用子查询:

🧐返回每个员工的姓名和总销售额

SELECT t1.name, t2.total_sales
FROM employees AS t1
INNER JOIN (SELECT employee_id, SUM(sales) AS total_sales FROM sales GROUP BY employee_id) AS t2
ON t1.id = t2.employee_id;

👉这个查询会返回每个员工的姓名和总销售额,其中子查询用于计算每个员工的总销售额。FROM语句中的子查询:“子查询可以作为FROM子句的一部分,用于生成一个虚拟表,供外部查询使用”


✏️三、select子句中使用子查询

🧐返回每个客户的姓名和他们的订单数量

SELECT name, (SELECT COUNT(*) FROM orders WHERE customer_id = customers.id) AS order_count
FROM customers;

👉这个查询会返回每个客户的姓名和他们的订单数量,其中子查询用于计算每个客户的订单数量。SELECT语句中的子查询:子查询可以作为SELECT语句的一部分,用于获取数据或计算新的列


✏️四、having子句中使用子查询

🧐需要计算平均销售额,然后将其与每个销售员的销售额进行比较。使用HAVING子查询来筛选符合条件的销售员。

SELECT salesperson, SUM(amount) AS total_sales
FROM sales
GROUP BY salesperson
HAVING SUM(amount) > (SELECT AVG(amount) FROM sales);

在上述查询中,子查询(SELECT AVG(amount) FROM sales)用于获取销售表中所有销售额的平均值。然后,HAVING子句中的SUM(amount) > (SELECT AVG(amount) FROM sales)用于筛选出总销售额大于平均销售额的销售员。HAVING语句中的子查询:子查询可以作为HAVING子句的一部分,用于对分组后的数据进行过滤


✏️五、exists和not exists运算符

EXISTS和NOT EXISTS运算符:这些运算符常与子查询一起使用,用于检查子查询返回的结果是否存在。

SELECT column_name(s)
FROM table_name
WHERE EXISTS (SELECT column_name FROM table_name WHERE condition);

✏️总结

通过在这些位置使用子查询,可以实现复杂的查询逻辑,并根据外部查询的结果生成动态数据。子查询是MySQL中非常有用的功能之一,可以提供更强大和灵活的数据处理能力;子查询真的真的是MySQL中强大且灵活的工具,可以帮助我们进行更复杂的数据分析和处理操作。

相关文章:

MySQL子查询

😇作者介绍:一个有梦想、有理想、有目标的,且渴望能够学有所成的追梦人。 🎆学习格言:不读书的人,思想就会停止。——狄德罗 ⛪️个人主页:进入博主主页 🗼专栏系列:进入MySQL专栏知…...

学IT上培训班有用吗?

在学习IT技术的过程中,你是否也被安利过各种五花八门的技术培训班?这些培训班都是怎样向你宣传的,你又对此抱有着怎样的态度呢?在培训班里学技术,真的有用吗? 首先,IT行业是一个充满机遇和挑战…...

BI如何对接金蝶云星空数据源?奥威BI SaaS平台有绝招

传统BI部署时需要大量硬件和软件支持,而SaaS BI不仅不需要,还能让企业的数据可视化分析变得更加简单便捷,因此已经渐渐成为数字化时代的BI新趋势。那么,SaaS BI平台是如何快速接入数据完成数据可视化分析的?下面就以奥…...

鼎镁科技冲刺A股上市失败,董事长涂季冰三年薪水超过6000万元

7月15日,上海证券交易所披露的信息显示,因鼎镁新材料科技股份有限公司(下称“鼎镁科技”)审核不通过,上海证券交易所终止其发行上市审核。这意味着,鼎镁科技此次上市之旅彻底失败。 据贝多财经了解&#xf…...

PostgreSQL【应用 02】扩展SQL之C语言函数(编写、编译、载入)实例分享

C语言函数 1.准备1.1 开发文档1.2 工具安装 2.开始2.1 编写C语言函数2.2 编译和链接动态载入的函数 通过使用 PostgreSQL 的 C 函数接口,我们可以编写用 C 语言实现的函数,并将其集成到数据库中。这些函数可以在 SQL 查询中像其他内置函数一样被调用&…...

day37-框架

0目录 框架 1.框架介绍 2. SSM三大框架简介 3.Mybatis 4.拓展 1.框架介绍 1.1 为什么使用框架? (1)框架效率高,成本低 (2)框架是别人写好的构建,我们只需学会如何使用它(可维护性…...

基于STM32单片机的智能家居烟雾温度火灾防盗报警的设计与实现

功能介绍 以STM32单片机作为主控系统;LCD1602液晶显示屏来显示显示测得的值;SR501人体红外感应是否有人进行防盗;通过烟雾传感器MQ-2获取前的烟雾值;通过DHT11温湿度传感器来获取当前的温湿度;所有的信息通过通过esp82…...

jenkins 采用ssh方式连接gitlab连接不上

一、gitlab 添加jenkins服务器的公钥 jenkins 生成秘钥命令 ssh-keygen -t rsa2.jenkins 秘钥地址: cd /root/.ssh3.复制公钥 到gitlab 添加 cat id_rsa_pub4.添加私钥到jenkins cat id_rsa5.绑定(顺利的话到这里就结束了) &#xff0…...

前缀和模板算法

一)模板前缀和 【模板】前缀和_牛客题霸_牛客网 (nowcoder.com) 前缀和:快速的得出数组中某一段连续区间的和 暴力破解的话需要从头到尾的进行遍历,时间复杂度就可以达到O(N),而前缀和时间复杂度是可以达到O(1)的 第一步:预处理创建出一个前缀和数组dp&a…...

SpringBoot 启动输出 Git 版本信息(2023/07/11)

SpringBoot 启动输出 Git 版本信息 文章目录 SpringBoot 启动输出 Git 版本信息1. 环境依赖2. pom.xml 配置3. 启动类配置 为了方便记录项目打包时的 Git 版本,本文将介绍如何将 Git 版本信息打包进 JAR 文件,并在项目启动时输出。 1. 环境依赖 SpringB…...

SSH客户端连接远程服务器

目录 一、什么是客户端连接远程服务器 二、什么是服务端连接远程服务器 三、查看网络信息 1、图形程序查看网络信息 2、命令查看网络信息 四、SSH客户端(Linux) 五、SSH客户端(windows) 六、SSH远程服务器 一、什么是客户…...

“深入理解Redis:高性能缓存与数据存储的秘密“

标题:深入理解Redis:高性能缓存与数据存储的秘密 在现代应用程序的开发中,缓存和数据存储是非常重要的组成部分。它们不仅可以提高应用程序的性能,还可以减轻数据库和网络的负载。其中,Redis作为一种高性能的内存数据存…...

【论文阅读笔记】Attack-Resistant Federated Learning with Residual-based Reweighting

个人阅读笔记,如有错误欢迎指出 Arxiv 2019 [1912.11464] Attack-Resistant Federated Learning with Residual-based Reweighting (arxiv.org) 问题: 联邦学习容易受到后门攻击 创新: 提出一种基于残差的重新加权聚合算法 聚合算法…...

DevOps B站学习版(二)

学习地址: 01.DevOps的诞生_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Pt4y1H7Zq/?p1&vd_source1f09c23f556b3d6a9b7706f8db12fa54%E3%80%81 正文开始 找到这个地方,修改 可以写成基于标签拉取和构建工程,下面也选择Tag即可…...

MySQL(一)基本架构、SQL语句操作、试图

MySQL系列文章 MySQL(一)基本架构、SQL语句操作、试图 MySQL(二)索引原理以及优化 MySQL(三)SQL优化、Buffer pool、Change buffer MySQL(四)事务原理及分析 MySQL(五&a…...

MySQL事务基础知识

文章目录 一、事务简介二、事务操作1.查看事务提交方式2.设置事务提交方式3.开启事务4.提交事务5.回滚事务 三、事务四大特性ACID四、并发事务的问题五、并发事务隔离级别六、代码实例1.脏读实例2.不可重复读实例3.幻读的实例4.串行化的实现 一、事务简介 事务是一组操作的集合…...

form表单禁止浏览器自动填充密码

因为用户修改密码的时候,谷歌浏览器、edge等浏览器,总是自动将保存的密码填充到重置密码输入框中,给用户使用带来困扰。原因是因为你在登录的时候选择记住了账号和密码了,所以就会把信息存在浏览器里面,当你在修改密码的时候,由于form表单的 type="password" 所…...

ios oc button 设置

Button调整内部的子控件的位置...

山西电力市场日前价格预测【2023-07-17】

日前价格预测 预测明日(2023-07-17)山西电力市场全天平均日前电价为335.50元/MWh。其中,最高日前电价为377.51元/MWh,预计出现在06: 00。最低日前电价为271.94元/MWh,预计出现在13: 30。 价差方向预测 1:实…...

vue3功能实现

在vue2中,要实现一些方法(增删改查)一般都是写在一起的。如下图所示: 但是在vue3中,实现一个方法需要用到很多文件。 方法定义方法如下: export function classSign(phone: string) {return sign_reques…...

基于微信小程序的睡眠宝系统源码数据库文档

摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,睡眠宝系统被用户普遍使用,为方便用户能够可以…...

The Quantization Model of Neural Scaling

文章目录 摘要1引言2 理论3 概念验证:一个玩具数据集3.1 “多任务稀疏奇偶校验”数据集3.2 幂律规模和新兴能力 4 拆解大型语言模型的规模定律4.1 单token损失的分布4.2 单基因(monogenic)与多基因(polygenic)的规模曲…...

行业案例 | ASOS 借助 Azure AI Foundry(国际版)为年轻时尚爱好者打造惊喜体验

英国潮流电商ASOS借力微软Azure OpenAI,打造生成式AI购物新体验。平台整合大语言模型与推荐引擎,通过智能聊天交互帮年轻用户探索穿搭灵感,精准匹配近900个品牌的潮流单品,实现技术升级与个性化需求的双重突破。 使用 Azure Open…...

asp.net mvc如何简化控制器逻辑

在ASP.NET MVC中,可以通过以下方法简化控制器逻辑: ASP.NET——MVC编程_aspnet mvc-CSDN博客 .NET/ASP.NET MVC Controller 控制器(IController控制器的创建过程) https://cloud.tencent.com/developer/article/1015115 【转载…...

Go深入学习延迟语句

1 延迟语句是什么 编程的时候,经常会需要申请一些资源,比如数据库连接、文件、锁等,这些资源需要再使用后释放掉,否则会造成内存泄露。但是编程人员经常容易忘记释放这些资源,从而造成一些事故。 Go 语言直接在语言层…...

PHP环境极速搭建

一、为什么选择phpStudy VS Code? 作为一名初次接触PHP的开发者,我深知环境配置往往是学习路上的第一道门槛。传统PHP环境搭建需要手动配置Apache/Nginx、PHP解释器、MySQL等多重组件,光是处理版本兼容性和依赖问题就可能耗费半天时间——这…...

C++11 Token Bucket (令牌桶)算法的锁无实现及应用

Token Bucket(令牌桶)算法是一种在流量控制和资源分配领域被广泛应用的技术。它通过约束数据传输速率或任务执行频率,确保系统在资源有限的情况下,能够稳定、高效地运行,避免因突发流量或任务积压而导致的性能下降甚至…...

Java-IO流之序列化与反序列化详解

Java-IO流之序列化与反序列化详解 一、序列化与反序列化概述1.1 基本概念1.2 核心接口与类1.3 应用场景 二、Java序列化的基本实现2.1 实现Serializable接口2.2 使用ObjectOutputStream进行序列化2.3 使用ObjectInputStream进行反序列化 三、序列化的高级特性3.1 serialVersion…...

数据库学习(二)——MySQL语句

MySQL 语句分为: 语句类型作用关键字示例数据查询(DQL)查询数据SELECT数据操作(DML)插入、更新、删除数据INSERT, UPDATE, DELETE数据定义(DDL)定义或修改表结构CREATE, ALTER, DROP事务控制&a…...

Xilinx FPGA 重构Multiboot ICAPE2和ICAPE3使用

一、FPGA Multiboot 本文主要介绍基于IPROG命令的FPGA多版本重构,用ICAP原语实现在线多版本切换。需要了解MultiBoot Fallback点击链接。 如下图所示,ICAP原语可实现flash中n1各版本的动态切换,在工作过程中,可以通过IPROG命令切…...