My table looks like this:
id | user_id | period_id | completed_on ---------------------------------------- 1 | 1 | 1 | 2010-01-01 2 | 2
try this:
SELECT t.Id, t.User_Id, t.Period_Id, t.Completed_On FROM table1 t JOIN (SELECT Max(completed_on) Max_Completed_On, t.User_Id FROM table1 t GROUP BY t.User_ID) t2 ON t.User_Id = t2.User_Id AND t.Completed_On = t2.Max_Completed_On
DEMO HERE