2017-07-25 36 views
1

我有以下简化表:(请注意我们在exam_id跳过第二次考试)MySQL查询在一列返回唯一值和分类的ID来获得一个PHP数组

+----+---------+-------+ 
| id | exam_id | score | 
+----+---------+-------+ 
| 1 | 1 | 15 | 
| 2 | 1 | 20 | 
| 3 | 1 | 68 | 
| 4 | 3 | 92 | 
| 5 | 3 | 10 | 
+----+---------+-------+ 

我想写$sql有的php(我使用WordPress的,并且可以使用$wpdb)能够得到如下:

$exam[3]=10 
$exam[1]=68 

不是说当有多个考试,我们采取score进入对应于大st id$exam[2]为空。换句话说,我想保存用户尝试的最后一次考试并显示他们的分数。

我使用GROUP BY和

回答

2

试试这个

SELECT 
    * 
FROM exams 
WHERE exams.id IN (
        SELECT 
         MAX(id) 
        FROM exams 
        GROUP BY exam_id 
       ); 
+1

由于它的工作原理就像一个魅力试过!你有没有一个简单的解决方案的PHP代码?我想通过$ wpdb-> get_results获取它,然后运行循环foreach($ results as $ result){$ exam [$ result-> exam_id] = $ result-> score;} – GRS