我写的代码是SELECT c_name, min(grade) from student,score,course WHERE student.id=score.stu_id AND course.c_id=score.cor_id GROUP BY c_name;
但无法查询出每门课的最低分的同学的学号与分数,我的代码如何改进?
大概这样吧。。~
select course.c_name,student.name,t.grade
from
(
select t.grade,t.cor_id,score.stu_id
from (SELECT min(grade) as grade,cor_id FROM `score` group by cor_id)t,score where t.grade=score.grade and t.cor_id=score.cor_id
)t
left join student on student.id=t.stu_id
left join course on course.c_id=t.cor_id
order by course.c_name
学号和分数应该在分数表有字段。
根据课程进行分组,求出最低分和课程号以及学号。
然后与课程表进行关联,查询课程名、学号、最低分。