2013-02-07 31 views
1

我需要一个mysql查询,即使记录与日期没有关联,也会根据日期对每个ID采用最新记录。我不确定这是否可能与MySQL,但我感谢您可以给任何帮助。如何检索按日期分组时的所有ID的最新记录

例如,假设我有如下表:

user_id | total | timestamp 
---------------------------- 
    1 | -15 | jan 1 
    2 | -5 | jan 1 
    3 | -10 | jan 1 
    1 | -4 | jan 2 
    3 | -16 | jan 3 

我想它见下表返回:

user_id | total | timestamp 
---------------------------- 
    1 | -15 | jan 1 
    2 | -5 | jan 1 
    3 | -10 | jan 1 
    1 | -4 | jan 2 
    2 | -5 | jan 2 
    3 | -10 | jan 2 
    1 | -4 | jan 3 
    2 | -5 | jan 3 
    3 | -16 | jan 3 

请让我知道如果你需要进一步澄清。 感谢您的帮助。

+1

粘贴乌尔'query'太... –

+0

'即使记录不与date'装置相连接的时间戳列可以为空? –

+0

时间戳记列不为空。所有记录都有一个时间戳,但只要它小于组日期,我不关心结果表上的实际日期。那有意义吗? – millsdev

回答

0

SQLFiddle demo

select user_id, 

(select total 
     from t 
     where user_id=t2.user_id 
      and t.timestamp <= t2.timestamp 
order by t.timestamp DESC LIMIT 1) as total, 

timestamp 
from 
(
select user_id,timestamp 
from 
(select distinct user_id from t) t0 
cross join 
(select distinct timestamp from t) t1 
) t2 

order by timestamp,user_id 
+0

谢谢!这非常有帮助。 – millsdev

相关问题