2017-10-09 3 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.p_key_id = (select max(s2.p_key_id) from signup_info si2 where si2.name = si.name); 

p_key_idが自動増分された場合、それは最新のを取得するための、より信頼性の高い方法を提供するかもしれない

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

を同じ日付であれば、最初の行はその人の重複行を返します。