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

MySQL零基础教程14—子查询

子查询比较简单,我们还是通过案例引入。

有时候我们查询的时候,需要用到的不止一个表的数据,比如下面的场景:

查询名字叫李晓红同学的班主任姓名

我们提供三个表的基础信息如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从三张表的结构,我们不难看出,想要根据student_name找到teacher_name,是这样一条链路:
在这里插入图片描述

很显然,我们不能只查询一个表就得到想要的结果,我们需要多写一条查询,将其结果作为另外一条查询的条件,这就是一种嵌套的结构,而在mysql中,是允许这种sql构建方式的,所以我们最终的sql就是:

SELECT
    teacher_name
FROM
    teachers
WHERE
    teacher_id = (
        SELECT
            head_teacher_id
        FROM
            classes
        WHERE
            class_id = (
                SELECT
                    class_id
                FROM
                    students
                WHERE
                    student_name = '李晓红'
            )
    );

在这里插入图片描述

其实子查询就是完整的sql语句,查询结果可以用于:

  1. 用查询的特定值作为过滤条件
  2. 作为过滤范围
  3. 作为计算字段

用法非常多,就看自己的想象力了

相关文章:

  • 濮阳做网站推广疫情最新政策最新消息
  • .net做网站的方式广告公司图片
  • 做众筹网站要什么资质google首页
  • 西安网站制作的公司搜索引擎推广与优化
  • 手机wap网站模板西安关键词网站排名
  • 石狮网站建设seo引擎优化服务
  • Mybatis 的代理开发方式
  • golang接口
  • JS逆向获取算法 使用算法逻辑进行爆破
  • 晨控CK-FR03与汇川H5U系列PLC配置EtherCAT通讯连接手册
  • 蓝桥杯真题解题思路——因数计数
  • [免费]微信小程序(校园)二手交易系统(uni-app+SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
  • C++小课堂——构造函数与析构函数
  • 2025 Lakehouse 趋势全景展望:从技术演进到商业重构
  • Linux线程
  • Tauri+React+Ant Design跨平台开发环境搭建指南
  • Maven
  • B3DM转换成PLY
  • Spark之数据倾斜调优
  • 【后端】Flask vs Django vs Node.js 对比分析
  • Linux系统(以Ubuntu为例)安装高版本nodejs
  • 爬虫:一文掌握 Celery 分布式爬虫,及对应实战案例
  • 《AI模型变形记:从绿巨人到Hello Kitty的魔幻减肥营》
  • 【计算机网络——概述】
  • 【3D格式转换SDK】HOOPS Exchange技术概览(二):3D数据处理高级功能
  • 如何合理设置请求间隔?