MySQL零基础教程14—子查询

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

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

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

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



从三张表的结构,我们不难看出,想要根据student_name找到teacher_name,是这样一条链路:

很显然,我们不能只查询一个表就得到想要的结果,我们需要多写一条查询,将其结果作为另外一条查询的条件,这就是一种嵌套的结构,而在mysql中,是允许这种sql构建方式的,所以我们最终的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. 作为计算字段

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

相关推荐
imDwAaY14 分钟前
一条 SQL 发出去之后,MySQL 到底做了什么?
sql·mysql
行业研究员1 小时前
Agent Memory降低Token消耗原理解析
数据库·人工智能·oracle·腾讯云·智能体
yixun_gdas1 小时前
企业网站内容巡查的价值与方法:企业官网的合规与形象管理
数据库·内容运营
见闻小天地1 小时前
空调机房赛莱默B&G冷冻泵/冷却泵的核心技术特性分析
大数据·运维·数据库
辛迪聊物业数字化1 小时前
物业管理系统新手部署与实操指南
数据库·物联网·架构·系统架构
March.s1 小时前
MySQL 数据库原理与实战:从数据管理到 LAMP 建站全解
数据库·mysql
字节跳动的猫2 小时前
LikeShop 种草社区模块二开:笔记发布、话题广场与商品挂载实现
数据结构·数据库
IvorySQL2 小时前
PostgreSQL 日报| PostgreSQL JDBC 安全更新(10 月 10 日)
数据库·postgresql·区块链
悟道子HD2 小时前
网络安全基本功——MySQL基础
android·mysql·web安全
晚风叙码2 小时前
MySQL 增删改查(CRUD)完全指南:从入门到面试
数据库·mysql·面试