#####答案1
select studentname,gradename,subjectname,examdate,studentresult
from result r
join student s
on r.studentno=s.studentno
join course c
on r.subjectno=c.subjectno
join grade g
on c.gradeid=g.gradeid
where examdate=
(
select max(examdate) from result
where studentno=r.studentno and subjectno=r.subjectno
)
order by convert(studentname using gbk),gradename,subjectname
;
#我的----有问题--已修正,内连接先连谁不讲究,但是什么表相邻是讲究的
select studentname,gradename,subjectname,examdate,studentresult
from grade
join course
on grade.gradeid=course.gradeid
join result r
on course.subjectno=r.subjectno
join student
on student.studentno=r.studentno
where examdate=
(
select max(examdate) from result
where studentno=r.studentno and subjectno=r.subjectno
)
order by convert(studentname using gbk),gradename,subjectname
;
#我的----有问题---会串年级,即不是这个年级学的课却展示了
select studentname,gradename,subjectname,examdate,studentresult
from grade
join student
on student.gradeid=grade.gradeid
join result r
on student.studentno=r.studentno
join course
on course.subjectno=r.subjectno
where examdate=
(
select max(examdate) from result
where studentno=r.studentno and subjectno=r.subjectno
)
order by convert(studentname using gbk),gradename,subjectname
;
串行

该博客探讨了如何使用SQL查询获取每个学生在特定科目上的最新考试日期的成绩。通过调整表连接顺序和条件过滤,以避免数据串行和确保结果准确性。内容涉及SQL内连接、子查询以及按特定字段排序。
&spm=1001.2101.3001.5002&articleId=122979604&d=1&t=3&u=4e3e6d4fd27c46e6b4cb3a3ec61a7b9a)

被折叠的 条评论
为什么被折叠?



