1. 程式人生 > >Mysql學生課程表面試集合

Mysql學生課程表面試集合

 

現有如下2個表,根據要求寫出SQL語句。

student表:編號(sid),姓名(sname),性別(sex)

course表:編號(sid),科目(subject),成績(score)

 

 問題1:查詢出所有科目總成績最高的學生姓名及總成績

方式一):

1 select s.sid,s.sname,sum(c.score) as z
2 from course c
3 left join student s
4 on c.sid = s.sid
5 group by c.sid,s.sname
6 order by z desc 
7 limit 1

 

方式二):

 1 SELECT
 2     sname
 3 FROM
 4     student
 5 WHERE
 6     sid IN (
 7         SELECT
 8             sid
 9         FROM
10             (
11                 SELECT
12                     sid,
13                     sum(score) AS z
14                 FROM
15 grade 16 GROUP BY 17 sid 18 ORDER BY 19 z DESC 20 LIMIT 1 21 ) AS qw 22 ) 23 UNION 24 ( 25 SELECT 26 sum(score) AS z 27 FROM 28 grade
29 GROUP BY 30 sid 31 ORDER BY 32 z DESC 33 LIMIT 1 34 )