SQL(不存在命令)

时间:2016-02-28 07:33:45

标签: sql exists

create table class (cid integer primary key , cname text);

create table student (sid integer primary key, sname text);

create table attend ( cid integer , sid integer, grade integer);

Select A.cid, S.sname, S.sid
From Student S, Attend A
Where S.sid=A.sid and not exists
(Select *
From Attend A2
Where A2.cid=A.cid and A2.grade > A.grade);

我不明白为什么结果是:

对于每个班级ID,显示在此课程中获得最高成绩的学生的姓名

我认为这样可以让每个班级的学生获得最低分。

有人可以帮忙吗?谢谢!

1 个答案:

答案 0 :(得分:0)

请注意 not 运算符 - 此查询选择的学生,其他学生的成绩高于他 - 也就是说,他的成绩最高。