日期:2014-05-16  浏览次数:20372 次

查询各科成绩前K的同学名称,课程,成绩
Table: course

字段信息
course_id int(11)
name varchar(20)

Table: score

字段信息


id int(11)
student_id int(11)
course_id int(11)
score int(11)


Table: student

字段信息


student_id int(11)
name varchar(20)



SELECT
  student.name 学生,
  course.name 科目,
  mscore.score 成绩
FROM (SELECT *
      FROM SCORE OSCORE
      WHERE (SELECT
               COUNT(*)
             FROM SCORE ISCORE
             WHERE ISCORE.COURSE_ID = OSCORE.COURSE_ID
                 AND ISCORE.SCORE > OSCORE.SCORE) < 3
      ORDER BY OSCORE.COURSE_ID,OSCORE.SCORE DESC) mscore,
  student,
  course
WHERE student.student_id = mscore.student_id
    AND course.course_id = mscore.course_id

查询结果
引用

学生 科目 成绩
马六 语文 96
王五 语文 73
孙七 语文 62
孙七 数学 99
王八 数学 80
马六 数学 38
李四 数学 38
王八 英语 99
李四 英语 90
王五 英语 34