SQL进阶:子查询

发布时间:2023年12月25日

一般情况下,我们都是直接对表进行查询,但有时候,想要的数据可能通过一次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优化中再讲。

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

            
文章来源:https://blog.csdn.net/zcy_wxy/article/details/135188439
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。