2012-07-18 61 views
0
SELECT DISTINCT(player2) FROM logs 
WHERE player1=3 
ORDER BY time DESC 

是否有可能使用該查詢返回其他非明顯的cols?mysql distinct或

還是我其他的解決方案:

SELECT * FROM logs 
WHERE player1=3 
GROUP BY player2 ORDER BY time DESC 

這工作得很好,但它不正確排序。它挑選組中的第一個。

表例如:

player1 player2 time 
3  5  1 
3  5  2 
3  6  3 

我希望它返回:

player2 time 
5  2 
6  3 

但它(與集團)返回:

player2 time 
5  1 
6  3 

回答

4

試試這個:

SELECT player2, MAX(time) AS time 
    FROM logs 
WHERE player1=3 
GROUP BY player2 
ORDER BY time DESC 
+0

太棒了,非常感謝。 – domino 2012-07-18 17:50:43

1
SELECT player2, max(`time`) as max_time 
FROM logs 
WHERE player1 = 3 
GROUP BY player2 
0
SELECT player2, MAX(time) AS time 
FROM logs 
WHERE player1=3 
GROUP BY player2 
ORDER BY MAX(time) 
+0

@Chandu我是新來的。當我回答一個答案時,最好是編輯以前還是添加我自己的?謝謝 – 2012-07-18 17:52:55

+0

只要最終版本反映正確的內容,任何一種方式都可以...... – Chandu 2012-07-18 17:53:34