2013-12-10 145 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' –