mysql数据库多表查询
2017-12-21 本文已影响0人
背起我的破书包
有以下几张表:
学生表s:sid(主键)、sname(姓名)、sex(性别)、age(年龄)

班级表c:cid(主键)、cname(班级名)

教师表t:tid(主键)、tname(教师名称)

关系表sc:id(主键)、sid(学生主键)、cid(班级主键)、tid(教师主键)、score(成绩)

1、查询出所有学生所在的班级名称
select cname from c where cid in(select cid from sc where sid in(select sid in s))
2、查询刘老师名下学生成绩不低于60分的学生姓名、班级、成绩
select s.sname,c.cname,sc.score from sc inner join s s.sid=sc.sid join t t.tid=sc.tid join c c.cid=sc.cid where t.tname="刘老师" and sc.score>=60;
3、查询出各班级的班级名称、平均成绩,并按班级cid倒序排序
select c.cname,avg(sc.scrore) as averageScore from c innter join sc c.cid=sc.cid group by sc.cid order by c.cid desc;