一组用户的最后X个条目

时间:2013-07-01 22:34:53

标签: mysql sql

我有一个事务/审计表,其中为每个特定用户操作创建了一个条目。

我正在尝试为一组用户提取最后一笔交易。所以对于用户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个条目。

感谢您的帮助。

1 个答案:

答案 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);