所有这一切仍然很新,所以请耐心等待。
有3张桌子
table 1: member
Mem_index, Mem_name
1 joe
2 Mark
Table 2: Course
Course_index, Course_Name
1 Math
2 Reading
Table 3 : data
Data index,Member,Course,Score
1 1 1 85
2 1 2 75
3 2 1 95
4 1 2 65
所以我想做的是创建一个表: 进行查询并收集所有课程,找到每门课程的最高分数,并将成员名称归属于该课程。
表结果应如下所示:
Course, Max score,name
Math 95 Mark
Reading 75 Mark
我可以单独进行查询,但不确定如何循环查询,然后将数据传播到表中。
答案 0 :(得分:1)
这个SQL查询怎么样?
SELECT c.course_name, MAX( d.score ), m.mem_name
FROM members m
JOIN data d on m.mem_id = d.member
JOIN course c on c.course_id = d.course
GROUP BY d.course
ORDER BY d.score, m.mem_name, c.course_name
不确定字段名称是否匹配,但您明白了 - 在sql中测试了一些虚拟数据。
Data
Index Member Course Score
1 1 1 60
1 1 1 85
Course
course_id course_name
1 Math
2 English
3 Science
Members
mem_id mem_name
1 Mark
2 James
您将获得以下
Course Name Score Member
Math 85 Mark
答案 1 :(得分:1)
尝试此查询:
SELECT c.course_Name , MAX(d.score),m.mem_name
FROM data d
JOIN course c ON d.course=c.course_index
JOIN members m ON m.mem_index = d.member
GROUP BY d.course
ORDER by MAX(d.score) DESC