假设我有一个名为“signup_info”的表,如下所示:
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有关的最多行?
最佳答案
我会使用相关子查询:
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);
如果某人在同一日期注册两次,则第一次注册将返回该人的重复行。
关于MySQL 查询具有最近日期的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46652405/