发现一个很有意思的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操作,得出答案。
阅读到的文章