mysql資料庫多表查詢

weixin_33912246發表於2017-12-21

有以下幾張表:

學生表s:sid(主鍵)、sname(姓名)、sex(性別)、age(年齡)


7791006-5131ebafea6e8121.png

班級表c:cid(主鍵)、cname(班級名)


7791006-e395c562d828e46a.png

教師表t:tid(主鍵)、tname(教師名稱)


7791006-e13b33e1c4364c92.png

關係表sc:id(主鍵)、sid(學生主鍵)、cid(班級主鍵)、tid(教師主鍵)、score(成績)


7791006-c2ecc8566d393d50.png

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;

相關文章