2013-07-01 1 views
-1

각 특정 사용자 작업에 대한 항목이 생성되는 트랜잭션/감사 테이블이 있습니다.사용자 집합에 대한 마지막 X 항목

사용자 집합에 대한 마지막 트랜잭션을 가져 오려고합니다. 그래서 1,2,3 사용자들은 각각 마지막으로 무엇을했는지에 대해 을보고 있습니다.

기본 스키마입니다 : trans_id, 액션, 이것 내 첫 번째 시도는 그래서 같은 쿼리 수행했다

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 항목.

도움 주셔서 감사합니다.

답변

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); 
+0

각 사용자의 마지막 trans_id를 가져 오지만, 복수 사용자에게 가장 적합한 솔루션입니다. – elzaer

+0

예. 스레드 제목과 스레드 내용은 두 가지 다른 요구 사항을 제시합니다. – Strawberry

+0

이 답변을 주셔서 감사합니다. 필요한 정확한 정보를 제공해 주셨습니다. –

관련 문제