2013-12-10 147 views
0

我想從表中選擇數據,按日期值最大值對該數據進行分組。按最大日期分組

在我的表中我有4列 - id, message_id, client_id and date。列ID是唯一的並且自動遞增,而message_id和client_id具有重複的值。日期幾乎是唯一的。 我想select all records, group by message_id and client_id, that has date maximum

我查詢 -

SELECT *,MAX(`date`) AS `maxdate` FROM `table_name` group by `message_id`,`client_id` order by `date` desc 

但這並不給人以最大值的日期。 我收到第一次約會的記錄。

請幫忙,並告訴我正確的查詢,我對mysql很新。

+0

您的查詢似乎是對你的要求是正確的。也許嘗試提供一些示例數據。你還想檢索對應於最大日期的ID嗎?如果是這樣,你需要一個自我連接,詳情如下。 – LSerni

回答

0

嘗試此查詢出來 - 這是我會怎麼做,在甲骨文:

select n1.id, n1.message_id, n1.client_id, n1.date 
from shailjas_note n1 
where n1.date = (select max(n2.date) 
        from shailjas_note n2 
        where n1.message_id = n2.message_id 
         and n1.client_id = n2.client_id) 
+1

感謝您的查詢..它做了我想要的。 在我的查詢中,我只需要添加這個 - ''order by'maxdate' desc' –