子查询

本文介绍SQL中的子查询应用,包括标量子查询、列子查询、行子查询等,并通过实例展示了如何利用这些子查询来获取特定信息,如学生所在的班级、每班最高学生等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

– 知道一个学生的名字,张三,想知道他在哪个班级
– 1,通过学生表获取他的班级ID
– 2, 通过班级ID获取班级名字
– 标量子查询
select * from class where class_id = (select class_id from my_student where stu_name = ‘张三’);
这里写图片描述

– 想获取在班学生的所有班级名字
– 1,找出学生表中所有班级ID
– 2, 根据班级ID找出所有班级名字
– 列子查询
select name from class where class_id in (select class_id from my_student);
这里写图片描述

– 主查询 where 条件[(构造一个行元素)] = (行子查询);
select * from my_student where (stu_age,stu_height) = (select max(stu_age),min(stu_height) from my_student);
这里写图片描述

标量子查询、列子查询和行子查询:都属于where子查询

– 获取每班最高学生
– 1,把最高学生放在第一位 order by
– 2,在对结果进行group by ,保留每组第一个
– 表子查询
select * from (select * from my_student order by stu_height desc) as temp group by class_id;
这里写图片描述

– exists 查询,求出有学生所在班级
select * from class as c where exists(select stu_id from my_student as s where s.class_id = c.class_id);
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值