MySQL GROUP BY 返回第一项 - 需要选择最后一项

标签 mysql

我有一个表,其中包含同一 user_id 的重复数据。我需要为每个 user_id 选择最新的记录。当我使用 group by 时,然后排序。 mysql 按该顺序执行该功能,但我得到了错误的记录。

表 - tblUsersProfile

字段类型空默认注释 id int(11) 无AI
user_id int(7) 否
first_name_id int(11) 否
last_name_id int(11) 否
location_id int(11) 否
出生日期 是 NULL
sex int(1) 是 NULL 1 表示男性,0 表示女性 create_by int(21) 否
Activity_ts 时间戳 否 CURRENT_TIMESTAMP

最佳答案

select t1.* from tblUsersProfile as t1
inner join (
select user_id,max(activity_ts) as rct
from tblUsersProfile
group by user_id) as t2
on t1.user_id = t2.user_id and t1.activity_ts = t2.rct

如果您的所有其他数据对于所有记录都是冗余且相等的,那么也许我的查询比必要的更加“复杂”。

关于MySQL GROUP BY 返回第一项 - 需要选择最后一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7071447/

相关文章:

mysql - 根据条件使用值填充列

mysql查询从两个日期中排除星期日

mysql - InnoDB 和计数 : Are helper tables the way to go?

mysql - 您可以使用触发器修改插入时的外键吗?

php - mysql 表连接和使用 DISTINCT

Python 加载一组 .csv 文件到 MySQL

mysql - 如何在一个查询中使用带有替换的子字符串?

php 不会回显内部连接查询的结果

php - 从同一个表连接

每月每一天的MySQL累计总数