SQL进阶:子查询

一般情况下,我们都是直接对表进行查询,但有时候,想要的数据可能通过一次select 获取不到,需要嵌套select,这样就形成了子查询。

子查询可以位于查询语句的任意位置,主要的注意点在于用于不同的位置,和不同的关键字一起使用时,需要注意返回的列的数量行的数量

位于select部分

当位于select中时,一般只能返回一行一列。因为在结果集中,对应的位置只能容下一个值。

比如这里我们要查询选课表中的课程名称,除了使用join,还可以使用子查询

select
	cs.*,
	(
	select
		c.course_name
	from
		courses c
	where
		c.course_id = cs.course_id) as course_name
from
	course_selections cs;

结果

位于from部分

当位于from时,则没有了行数和列数的限制,等同于一张表。from部分的子查询常用在SQL优化中,用来做条件提升,以减少结果集的运算次数。这个会在后边的SQL优化中再讲。

比如这里我们要查询选课表中的课程名称,


 

                

相关推荐

  1. SQL:多表查询

    2023-12-25 06:00:04       64 阅读
  2. My SQL 查询

    2023-12-25 06:00:04       46 阅读
  3. SQL:视图

    2023-12-25 06:00:04       70 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-25 06:00:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-25 06:00:04       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-25 06:00:04       82 阅读
  4. Python语言-面向对象

    2023-12-25 06:00:04       91 阅读

热门阅读

  1. 【PostgreSQL表增加/删除字段是否会重写表】

    2023-12-25 06:00:04       47 阅读
  2. C#编程简单应用程序批量修改文件名2.0

    2023-12-25 06:00:04       67 阅读
  3. Node.js教程-mysql模块

    2023-12-25 06:00:04       51 阅读
  4. SQL面试题挑战06:互相关注的人

    2023-12-25 06:00:04       50 阅读
  5. 客户需求分析常用的ChatGPT通用提示词模板

    2023-12-25 06:00:04       62 阅读
  6. C++多线程学习笔记004简单的Producer和Consumer模型

    2023-12-25 06:00:04       54 阅读
  7. Ubuntu18.04安装GTSAM库(亲测可用)

    2023-12-25 06:00:04       60 阅读
  8. OV5640:寄存器 自用

    2023-12-25 06:00:04       54 阅读
  9. KPM算法快速检索文本

    2023-12-25 06:00:04       52 阅读
  10. LeetCode day30

    2023-12-25 06:00:04       71 阅读
  11. 常用算法-桶排序

    2023-12-25 06:00:04       52 阅读
  12. git使用

    git使用

    2023-12-25 06:00:04      61 阅读