我有一个事务/审计表,其中为每个特定用户操作创建了一个条目。
我正在尝试为一组用户提取最后一笔交易。所以对于用户1,2,3我在寻找 为了每个人最后做的事情。
基本架构是:trans_id,action,user_id
我的第一次尝试就是这样做一个查询:
select * from audit_table where user_id IN (1,2,3) group_by(user_id) ORDER BY trans_id DESC
LIMIT 3
但这并没有特别提到'最后'3个条目。
感谢您的帮助。
答案 0 :(得分:3)
SELECT x.*
FROM audit_table x
JOIN SELECT user_id, MAX(trans_id) max_trans_id FROM audit_table GROUP BY user_id) y
ON y.user_id = x.user_id
AND y.max_trans_id = x.trans_id
WHERE x.user_id IN (1,2,3);