2009-11-17 85 views
0

我有一個問題,使用該組時正確排序我的結果。它似乎顯示數據庫中的第一個條目,而不是組中的最新條目。如何分組和正確訂購

實施例:

ID(自動增量)|名稱
1 |安妮
2 | james
3 |安妮
4 | brad

正如你所看到的,我有多次輸入「安妮」,這就是爲什麼我使用該組。然後我會喜歡它顯示最近的「安妮」,這將是條目「3」。相反,它顯示的第一個 「安妮」(1)

我查詢

「BY ID DESC

任何幫助,將不勝感激SELECT * FROM GROUP BY名稱的順序。

回答

0

試試這個;它會工作:

SELECT * FROM TABLE 
    INNER JOIN (SELECT MAX(id) AS id 
       FROM TABLE 
       group by name) 
    ids ON TABLE.id = ids.id 
2

可能的解決方案:

SELECT id, name 
FROM TABLE 
WHERE id IN (SELECT MAX(id) FROM TABLE GROUP BY name) 
4

的問題是,你選擇的所有字段(使用*很少是一個好主意),所以每行都是唯一的,因此沒有什麼可組上。

嘗試:

SELECT 
    Name, 
    MAX(ID) 
FROM 
    TABLE 
GROUP BY 
    Name 
0

嘗試

SELECT DISTINCT name 
FROM table 
ORDER BY id DESC 
0

建立在另一個前面回答已經提供,這將SQL避免到GROUP BY名稱:

SELECT 
    DISTINCT Name, 
    MAX(ID) 
FROM 
    TABLE