查询和表 - MAX和Join

时间:2013-09-11 22:47:05

标签: php mysql while-loop

所有这一切仍然很新,所以请耐心等待。

有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

我可以单独进行查询,但不确定如何循环查询,然后将数据传播到表中。

2 个答案:

答案 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