[求帮助]求关联查询sql语句,具体请看帖子

MySql 码拜 8年前 (2016-07-12) 1045次浏览
学生表:学号,姓名;
例如:
=============
学号  姓名

1       张三
2       李四
=============
成绩表:学号,科目,成绩;
===============
学号  科目  成绩

1       语文  60
1       数学  59
2       语文   1
2       数学  99
===============
求语句:查询每个学生的学号、姓名、该学生成绩最高的科目;
例如:查询结果应为:
===============
学号  姓名  成绩最高的科目

1       张三  语文
2       李四  数学
===============
解决方案

10

select *
from 学生表 s inner join 成绩表 c on s.学号=c.学号
and not exists (select 1 from 成绩表 where 学号=c.学号 and 成绩>c.成绩);

5

SELECT 成绩 ,学号,科目 FROM 成绩表,学生表
WHERE (学生表.学号=成绩表.学号)AND 成绩表.成绩 IN (SELECT MAX(成绩)
FROM 成绩表 WHERE 学号=成绩表.学号 GROUP BY 学号)
或用英文
SELECT SNAME ,CNO,GRADE FROM Score Y,Student
WHERE (STUDENT.SNO=Y.SNO)AND Y.GRADE IN (SELECT MAX(GRADE)
FROM SCORE WHERE SNO=Y.SNO GROUP BY SNO)

5

SELECT a.学号,a.姓名,b.科目 from 学生表 as a
JOIN
(select 学号,科目 from 成绩表 as a
JOIN
(select max(成绩)as 成绩 from 成绩表 GROUP BY 学号)as b
ON a.成绩=b.成绩) b
ON a.学号=b.学号;

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明[求帮助]求关联查询sql语句,具体请看帖子
喜欢 (0)
[1034331897@qq.com]
分享 (0)