2011-12-16 10 views
0

このクエリはすべての更新をリストしています。 Iすべての更新は、人はこれが今リストされています方法です人物の最新のリスト表示

SELECT DISTINCT updated, name 
    FROM table 
    WHERE updated > '$toDay' 
    GROUP BY updated DESC, name ASC; 

を行っている最新の更新プログラムを一覧表示するだけではないとします

15-12-2011 Gary  
10-12-2011 Anna 
09-12-2011 John 
08-12-2011 John 
07-12-2011 Gary 
05-10-2010 Gary 

は、これは、私はそれが記載されていることを文句を言わない方法です:

15-12-2011 Gary  
10-12-2011 Anna 
09-12-2011 John 

答えて

1
SELECT name, MAX(updated) as last_update, 
FROM table 
WHERE updated > '$toDay' 
GROUP BY name; 
2
SELECT MAX(updated) AS MaxUpdate, name 
    FROM table 
    WHERE updated > '$toDay' 
    GROUP BY name 
    ORDER BY MaxUpdate DESC, name ASC; 
+0

それは素晴らしい作品! あなたの時間を費やして私を助けてくれてありがとう! – Kaj

0
SELECT DISTINCT MAX(updated), name 
    FROM table 
    WHERE updated > '$toDay' 
    GROUP BY updated DESC, name ASC; 

MAX([DISTINCT] expr)

exprの最大値を返します。 MAX()は文字列引数をとることができます。そのような場合は、最大文字列値を返します。

+0

時間をかけて助けてくれてありがとう! – Kaj

0

GROUP BYを使用すると解決できます。

0

GROUP BYとORDER BYの構文が混乱しているようです。

はこれを試してみてください:

SELECT DISTINCT updated, name 
FROM table 
WHERE updated > '$toDay' 
GROUP BY name 
ORDER BY updated DESC, name ASC; 

また、あなたはSQLの記事をチェックすることができます。

GROUPY BY

ORDER BY

+0

あなたの時間を費やして私を助けてくれてありがとう! – Kaj

関連する問題