2017-07-25 38 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