查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;

这篇博客探讨了一个复杂的SQL查询,其目的是找出所有选课数量与学号为'1002'的学生相同的其他学生。查询通过子查询首先确定'1002'的选课数,然后在主查询中匹配选课数相同的学生,并排除掉与'1002'选课记录相同的记录。这个例子展示了高级SQL操作和聚合函数的应用。
摘要由CSDN通过智能技术生成

发现一个很有意思的sql语句
在这里插入图片描述

select sc1.sno
from (
    select sno
    from sc
    group by sno
    having count(*)=(
        select count(*) from sc where sno='1002')) sc1, sc
where sc1.sno=sc.sno and cno in(
    select cno from sc where sno='1002')
group by sc.sno
having count(*)=(
    select count(*) from sc where sno='1002');

1、先在子查询找到1002所选的课数,2、找出选课数相等的学生学号并命名法新表sc1,3、sc1和sc连接后,可以排除掉所有选课数目不等于1002的学生的选课记录,4、重复上个答案的1、2,5、重复上个答案的3、4操作,得出答案。
阅读到的文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值