Mysql嵌套查询太简单了

1、子查询的分类

  • 不相关查询: 子查询能独立执行

  • 相关查询: 子查询不能独立运行

相关查询的执行顺序:

首先取外层查询中表的第一个元组,根据它与内层查询相关的属性值处理内层查询,

WHERE子句返回值为真,则取此元组放入结果表,

然后再取外层表的下一个元组,重复这一过程,直至外层表全部查询完为止。

通常情况下都是因为子查询中的表用到了外部的表,并进行了条件关联, 因此每执行一次外部查询,子查询都要重新计算一次,这样的子查询就称之为 关联子査询。 相关子查询按照一行接一行的顺序执行,主查询的每一行都执行一次子查询。

2、子查询返回类型分类

  • 标量子查询:返回单个值

  • 列子查询:返回一列值

  • 行子查询:返回一行值

  • 表子查询:返回一个表 等下会有例子对应理解

3、嵌套场景

4、示例

4.1 数据准备

图片

图片

4.2 非相关查询

SELECTa.id,name,b.score
FROMstudent a,(select * from score where score >70)bWHERE a.id = b.student_id

子查询并不依赖父查询

4.3 select 标值

SELECTid,name,(select score from score b where a.id = b.student_id and b.course_id= 1) as '语文'
FROMstudent a

4.4 from 表

SELECTa.id,name,b.score
FROMstudent a,(select * from score where id >1)bWHERE a.id = b.student_id

注:这里并没有什么逻辑,id>1 随便写的条件

4.5 where

SELECT* 
FROMstudent a
WHERE (select avg(score) from score b where a.id = b.student_id GROUP BY b.student_id)>70

这里是返回一个标值

4.6 where exist

SELECT* 
FROMstudent a
WHERE EXISTS ( select * from score b where a.id = b.student_id  and b.course_id = 5)

5、总结

嵌套查询之前一直分不清执行顺序,没有做过总结

记住两个点: 相关查询还是非相关查询

查询出的内容是什么类型,选择对应的操作符

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

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

相关文章

maven3.9+下载安装

maven介绍 Maven 是一个项目管理和理解工具,它基于项目对象模型(POM)概念。Maven 可以帮助开发者定义项目结构、依赖关系、构建过程以及其他任务。它主要用于 Java 项目,但也可以用于其他类型的项目。Maven 的主要目标是简化构建…

hacs安装midea ac lan 0.3.22无法下载

1.hacs下载midea ac lan 0.3.20安装成功 2.GitHub下载0.3.22zip包 3.上传至群晖文件夹 4.SSH连接操作先备份一下 cp -r /var/packages/HomeAssistant/home/.homeassistant/custom_components/midea_ac_lan/ /volume2/homes/ 5.删除 rm -rf /var/packages/HomeAssistant/home/.h…

Centos7 ElasticSearch集群搭建

1. 服务器环境配置 1.1 配置hosts文件 3台服务器都要执行 vim /etc/hosts; # 将以下内容写入3台服务器hosts文件 192.168.226.148 es001 192.168.226.149 es002 192.168.226.150 es003 1.2 关闭防火墙 3台服务器都要执行 systemctl stop firewalld; systemctl disable…

探究汇编中的栈帧和局部变量

本节视频学习链接:https://pan.quark.cn/s/2db92a03734d 汇编语言中的函数调用和局部变量的管理是通过栈帧(Stack Frame)来实现的。栈帧是在函数调用时创建的,它存储了函数的局部变量、参数以及返回地址。本文将详细讲解栈帧的概…

未来互联网

未来互联网的发展将涉及人、物、环境三个方面的系统整合,下面是具体的解释: 人:未来互联网将更加人性化,通过智能化技术实现个性化服务和定制化体验,从而提高用户的满意度和忠诚度。同时,未来互联网也将加强…

Python语言零基础入门——条件判断

目录 一、单分支选择结构:if语句 二、双分支选择结构:if-else 三、多分支选择结构 四、嵌套选择 五、match语句 match与if的对比 六、代码规范 七、练习题 1.年龄判断 2.成绩判断 3.闰年判断 一、单分支选择结构:if语句 if 条件&…

STM 32 GPIO 的几种工作模式怎么运行?

在嵌入式开发领域,STM32微控制器系列因为功能强大和灵活性而广受欢迎。 其中,通用输入输出(GPIO)是最基础的功能,用于与外部世界的直接电子接口。 STM32 GPIO可以配置为多种工作模式,以适应不同的应用场景…

OpenCV从入门到精通实战(四)——答题卡识别判卷系统

基于OpenCV的答题卡识别系统,其主要功能是自动读取并评分答题卡上的选择题答案。系统通过图像处理和计算机视觉技术,自动化地完成了从读取图像到输出成绩的整个流程。下面是该系统的主要步骤和实现细节的概述: 1. 导入必要的库 系统首先导入…

偏微分方程算法之一阶双曲差分法

目录 一、研究目标 二、理论推导 2.1 引言 2.2 迎风格式 2.3 完全不稳定差分格式 2.4 蛙跳格式(Leapfrog) 2.5 Lax-Friedrichs格式 2.6 Lax-Wendroff格式 2.7 Beam-Warming格式 2.8 隐格式 2.9 Courant-Friedrichs-Lewy条件(CFL条…

(51单片机)第十一章-串行口应用提高

11.1 方式0应用 在第6章中,已经对51单片机的串行口结构做过详细介绍,并且通过实例讲解了串行口的4种工作方式中方式1的具体用法,本节详细讲述串行口方式0的用法。 串行口方式0被称为同步移位寄存器的输入/输出方式,主要用于扩展并…

【结构型模式】外观模式

​一、外观模式概述 外观模式定义与意图:外观类为复杂的子系统提供了一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。(对象结构型模式) 外观模式的特点: 1.又叫做门面模式&#xf…

试驾小米SU7后,我准备退了我的订单

文 | AUTO芯球 作者 | 雷歌 我真想退了我之前大定的小米SU7Pro版! 前两天我不是和朋友三人一起开着问界M9去试驾SU7了嘛, 说实话,这一圈下来,有欣喜有失望。 SU7的优点特别明显,也很突出, 就是它的底…

了解MySQL InnoDB多版本

了解MySQL InnoDB多版本 在数据库管理系统中,多版本并发控制(MVCC)是一种用于实现高并发和事务隔离的技术。MySQL的InnoDB存储引擎支持MVCC,这使得它可以在提供高事务性能的同时,也保证了数据的一致性和隔离性 MVCC简…

MySQL中的死锁预防和解决

MySQL中的死锁预防和解决 死锁是数据库管理系统中常见的问题,特别是在高并发的应用场景下。MySQL数据库中的死锁会导致事务处理速度减慢,甚至完全停止,因此理解并预防死锁至关重要。本文将详细介绍如何预防MySQL中的死锁,包括常用…

IBM SPSS Statistics for Mac:数据分析的卓越工具

IBM SPSS Statistics for Mac是一款功能强大的数据分析软件,专为Mac用户设计,提供了一系列专业的统计分析和数据管理功能。无论是科研人员、数据分析师还是学生,都能从中获得高效、准确的数据分析支持。 IBM SPSS Statistics for Mac v27.0.1…

C# 语言类型(一)—预定义类型值之数值类型

总目录 C# 语法总目录 参考链接: C#语法系列:C# 语言类型(一)—预定义类型值之数值类型 C#语法系列:C# 语言类型(二)—预定义类型之字符串及字符类型简述 C#语法系列:C# 语言类型(三)—数组/枚举类型/结构体 C#语法系列:C# 语言类型(四)—传递参数及其修饰符 C#语法…

Ubuntu 安装 wine

本文所使用的 Ubuntu 系统版本是 Ubuntu 22.04 ! 如果你使用 Ubuntu 系统,而有些软件只在 Windows 上运行,例如:PotPlayer,那么该如何在 Ubuntu 系统中使用到这些 Windows 的软件呢?答案是安装 wine。 简单的安装步骤如…

IDEA使用SCALA

一、在IDEA中下载插件 在设置->插件中找到scala,并下载。 下载完成后重启idea 二、在idea中创建spark的RDD操作项目 新建项目选中Scala。 创建完成后为项目添加java包,这个添加的是spark安装包中jars目录下的所有jar包 然后编写RDD操作 import or…

HBuilder真机调试检测不到荣耀Magic UI系列(包括手机和电脑)解决办法

HBuilder真机调试检测不到荣耀Magic UI系列(包括手机和电脑)解决办法解决方法: 1.在开发人员选项中开启USB调试 如何进入开发者选项? 设置->关于->版本号,点击版本号直至出现您已处于开发者模式 2.选择USB配置…

7-14 猜对了一半(*)

赛场内 n (0<n≤10) 名短跑运动员正在参加百米短跑比赛。赛场外有 m (0<m≤100) 名热心观众,他们每人都对比赛结果作出了 2 个预测。比赛结束后,运动员的名次各不相同,但令人惊奇的是每位观众都猜对了一半。请问这些运动员取得的实际名次是多少? 例如场内有 4 名运动…