SQL(不存在命令)
SQL (not exists command)
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);
我不明白为什么结果是:
对于每个 class id 显示在此 class
中获得最高分的学生姓名
我认为它会改为 return 每个 class 最低成绩的学生。
有人能帮忙吗?谢谢!
注意那里的 not
运算符 - 此查询 select 没有 的学生] 有任何其他学生的成绩比他高 - 即他的成绩最高。
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);
我不明白为什么结果是:
对于每个 class id 显示在此 class
中获得最高分的学生姓名我认为它会改为 return 每个 class 最低成绩的学生。
有人能帮忙吗?谢谢!
注意那里的 not
运算符 - 此查询 select 没有 的学生] 有任何其他学生的成绩比他高 - 即他的成绩最高。