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. 作为计算字段

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

相关推荐
m0_7482554118 分钟前
5、使用 pgAdmin4 图形化创建和管理 PostgreSQL 数据库
数据库·postgresql
文弱书生子28 分钟前
中间件专栏之MySQL篇——MySQL缓存策略
mysql·缓存·中间件
八股文领域大手子1 小时前
Synchronized解析
java·数据库·sql·mysql
夜泉_ly1 小时前
MySQL -操作
数据库·mysql
“抚琴”的人1 小时前
C#—csv文件格式操作
数据库·c#
m0_748252602 小时前
CentOS 7使用RPM安装MySQL
android·mysql·centos
道法自然,人法天2 小时前
MybatisPlus的扩展功能
java·数据库·spring·mybatis
敖云岚3 小时前
逐梦 DBA:从数据库概述出发
数据库·mysql
晴天Y285 小时前
MHA集群
运维·服务器·数据库