求助:Mysql 多表查询问题

百米山 2015-11-10 03:24:03
S 表一 学员表

Sid 学员id
Sname 学员名称

C 表二 课程表
Cid 课程id
Cname 课程名称


SC 表三 学员选课表
Sid 学员id
Cid 课程id
Grade 成绩



1.查出每个成员的成绩最好课程,三列:学员名称,课程名称,成绩

昨天面试的时候遇到的这个题,看起来比较简单,但是仔细一想关联三个表,项目上没遇到过,比较困惑。求大神指导指导
...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
百米山 2015-11-10
  • 打赏
  • 举报
回复
引用 2 楼 yupeigu 的回复:
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
非常感谢,按你的思路能达到想要的效果
文修 2015-11-10
  • 打赏
  • 举报
回复
楼主你好, 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
  • 打赏
  • 举报
回复
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
rucypli 2015-11-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

56,675

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧