Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查询和表-最大值和联接_Php_Mysql_While Loop - Fatal编程技术网

Php 查询和表-最大值和联接

Php 查询和表-最大值和联接,php,mysql,while-loop,Php,Mysql,While Loop,对这一切还很陌生,所以请容忍我 我有三张桌子 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

对这一切还很陌生,所以请容忍我

我有三张桌子

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

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

这个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
请尝试以下查询:

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

我想这就是我一直在寻找的推动,我会用它来运行。好吧,我走近了,我想到了这个:
选择c.course\u name作为course,MAX(d.score)作为score,d.distance作为distance,concat(m.First\u name',,m.Last\u name)作为name,v.Veh_名称作为车辆从hc_用户m加入m上的hc_条目d.user_索引=d.user加入c上的hc_课程c.course_num=d.course加入hc_车辆v.Veh_num=d.vehicle GROUP按d.课程顺序按d.分数,m.First_名称,c.课程名称
@Sephado Sorry仍然不确定如何将代码放入注释中。我现在不知道如何将d距离与最大(d.score)联系起来,它只是拉第一个距离,而不是与最大(d.score)关联的距离,我尝试连接到它本身,但无法连接;我做不到