2017-05-25 56 views
0

我試圖選擇每一個匹配match_id的歷史插入行,並顯示所有match_id在一個php頁面上,但不會顯示同一個match_id上的多行。MYSQLi選擇如何

由於它是我的孩子們足球比賽的日誌頁面,我會在同一個match_id上插入多行來標記他是否得分,所以我不會更新相同的match_id。

在這裏你可以看到數據庫外觀的一個例子。我還有更多專欄,但只是爲了讓你知道它的外觀。

(AI)id \t match_id \t team1 \t team2 \t result1 \t result2 \t goal \t timenow 
 
1 \t 1 \t   US \t ENG \t 0 \t 0 \t 0 \t 00:00 
 
2 \t 1 \t   US \t ENG \t 1 \t 0 \t 0 \t 08:00 
 
3 \t 1 \t   US \t ENG \t 1 \t 1 \t 0 \t 13:00 
 
4 \t 1 \t   US \t ENG \t 2 \t 1 \t 1 \t 20:00 
 
5 \t 2 \t   US \t FRA \t 0 \t 0 \t 0 \t 00:00 
 
6 \t 2 \t   US \t FRA \t 1 \t 0 \t 1 \t 04:00 
 
7 \t 2 \t   US \t FRA \t 1 \t 1 \t 0 \t 26:00 
 
8 \t 3 \t   US \t GER \t 0 \t 0 \t 0 \t 00:00 
 
9 \t 3 \t   US \t GER \t 1 \t 0 \t 0 \t 16:00

我想獲得的結果是一個PHP頁面,其中列出只是每個唯一匹配ID的最後一排。

示例HTML/PHP會顯示如下利卡:

US-ENG 2-1 
US-FRA 1-1 
US-GER 1-0 

希望你明白我的意思:)

編輯:得到它通過這行代碼工作,如果其他人有同樣的需求。 感謝阿基蘭誰導致我在正確的方向:)

SELECT * FROM table WHERE id IN (SELECT MAX(id) FROM table GROUP BY match_id) ORDER BY `table`.`timenow` DESC 

回答

0

您可以通過時間和組通過您的匹配ID做爲了能達到理想的輸出正確的?

例如,

SELECT * FROM match_table GROUP BY match_id ORDER BY TIME(timenow) 

編碼快樂, AK

+0

你好這似乎是正確的給了我所有的獨特的比賽:)但我有嘗試過,只獲得match_id的第一個輸入,我試過這個。 SELECT * FROM fotboll GROUP BY match_id ORDER BY UNIX_TIMESTAMP(timenow)DESC 但是,這不工作:( – Mattias

+0

得到它現在感謝您的幫助,我已經編輯我的問題與需要的代碼。 – Mattias

0

這將幫助你

select group_concat(team1,'-',team2,' ',result1,'-',result2) from match_table group by match_id order by match_id DESC LIMIT 1; 
0
SELECT group_concat(t1.team1,'-',t1.team2,' ',t1.result1,'-',t1.result2) from table t1 
LEFT JOIN table t2 
ON (t1.matchid = t2.matchid AND t1.id < t2.id) 
WHERE t2.id IS NULL; 
+0

代碼只答案是不和描述它如何克服OP問題的答案一樣有幫助。 – lit