2013-02-07 33 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

相關問題