10-31 sql-sample

本题目要求编写SQL语句,检索出每个班级中分数最低的同学id,姓名,分数,班级名称a111

select scl.stu_id,st.name as stu_name,
cl.name as class_name,sc.score 
from tb_student_class as scl
join tb_student as st on scl.stu_id=st.id
join tb_score as sc on scl.stu_id=sc.stu_id
join tb_class as cl on scl.class_id=cl.id
join(select class_id,min(score) as min
    from tb_student_class as scl2
    join tb_score as sc2 on scl2.stu_id=sc2.stu_id
    group by class_id) as min2
    on scl.class_id=min2.class_id
    and sc.score=min2.min;
    /*以下是代码重点知识点总结:
1. **表别名**:用 `AS` 为表设置别名,简化代码书写。
2. **多表连接**:通过 `JOIN` 结合 `ON` 条件,连接多个表获取关联数据。
3. **子查询**:嵌套查询算出每个班级最低分。
4. **聚合函数**:使用 `MIN()` 求每组数据最小值。
5. **分组查询**:用 `GROUP BY` 按班级 ID 分组,结合聚合函数计算。 
6. **连接子查询结果**:主查询与子查询结果连接,筛选出目标学生记录。 */
    /*llll*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值