具有最近日期的行的MySQL查询

时间:2017-10-09 18:00:34

标签: mysql sql database date timestamp

假设我有一个名为“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相关的最多行?

1 个答案:

答案 0 :(得分: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);

如果有人在同一天报名两次,那么第一次会为该人返回重复的行。