求帮助:Mysql 多表查询问题

MySql 码拜 9年前 (2015-11-16) 861次浏览
S 表一 学员表
Sid  学员id
Sname  学员名称
C 表二 课程表
Cid  课程id
Cname 课程名称
SC 表三 学员选课表
Sid 学员id
Cid 课程id
Grade 成绩
1.查出每个成员的成绩最好课程,三列:学员名称,课程名称,成绩
昨天面试的时候遇到的这个题,看起来比较简单,但是仔细一想关联三个表,项目上没遇到过,比较困惑。求高手指导指导
解决方案:10分
select a. Sname,b. Cname,d.Grade
from Sid a, C b,(
select id,
from SC c
where not exists (select 1 from SC  where Grade<Grade))d
where a.id=d. Sid and b. Cid=d.Cid
解决方案:40分
select s.sname,c.cname,t.grade
from (select * from (select * from sc order by sid,grade desc)t group by sid) t
inner join s on s.sid = t.sid
inner join c on c.cid = t.cid
解决方案:10分
LZ你好,
        select s.sname,c.cname,t.grade
              from (select * from (select * from sc order by sid,grade desc)t group by sid) t
              inner join s on s.sid = t.sid
              inner join c on c.cid = t.cid

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求帮助:Mysql 多表查询问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)