你可以这样理解:
select sno, cno form sc x; 把全表中的数据查询出来
然后,再操作
select avg(grade) from sc y where y.sno=x.sno ; 根据上面的查询中的每一个x.sno查询对应的平均成绩
最后,检查x.grade比其平均成绩大的数据,进行输出
但相关子查询和不相关子查询的区别就在于,子查询是否依赖于外查询,这个子查询求的每一个avg是依赖于外部的结果的吧
那普通的不相关子查询,理解就是先看内层,根据内层的条件再看外层
这个相关子查询就是先看外层,用外层的结果来算内层是么
“这个相关子查询就是先看外层,用外层的结果来算内层是么” 就这句能看懂,应该 就是这个意思。