2017-10-09 62 views
1

比方說,我有一個名爲「signup_info」表如下:MySQL查詢的行與最近的日期

p_key_id name gender signup_date 
1   Bob  male  10/5/17 
2   Mary female 9/23/14 
3   Jamie female 2/6/15 
4   Jamie male  3/22/17 

我將如何編寫一個查詢,只會給我最行有關最近signup_date爲每個人的名字的實例?

+0

'signup_date'是'DATE'還是'VARCHAR'?它看起來像一個'VARCHAR' ... – Siyual

回答

2

我會用一個相關子查詢:

select si.* 
from signup_info si 
where si.signup_date = (select max(s2.signup_date) from signup_info si2 where si2.name = si.name); 

如果p_key_id自動增量,那麼它可能會提供一個更可靠的方式來獲得最新的:

select si.* 
from signup_info si 
where si.p_key_id = (select max(s2.p_key_id) from signup_info si2 where si2.name = si.name); 

如果有人對兩次報同一日期,那麼第一個將返回該人的重複行。