0
SELECT DISTINCT(player2) FROM logs 
WHERE player1=3 
ORDER BY time DESC

そのクエリで他の明確でない列を返すことは可能でしょうか?

または私の他の解決策:

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

これは正常に機能しますが、正しく順序付けされません。グループの最初の 1 つを選択します。

テーブルの例:

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

私はそれが戻ることを期待します:

player2 time
5        2
6        3

しかし、それは返されます(group byで):

player2 time
5        1
6        3
4

3 に答える 3

4

これを試して:

SELECT player2, MAX(time) AS time
  FROM logs 
 WHERE player1=3 
 GROUP BY player2 
 ORDER BY time DESC
于 2012-07-18T17:37:04.987 に答える
1
SELECT player2, max(`time`) as max_time
FROM logs 
WHERE player1 = 3 
GROUP BY player2 
于 2012-07-18T17:37:25.090 に答える
0
SELECT player2, MAX(time) AS time   
FROM logs   
WHERE player1=3  
GROUP BY player2   
ORDER BY MAX(time) 
于 2012-07-18T17:42:51.907 に答える