0

假设我有一个名为的列UserID和一个名为ActiveUsers 的表,然后是一个名为User History.

我知道我可以获取最新的用户历史记录

select userid, field1, field2 
from us_hi 
where (userid,timestamp) 
    IN (select userid, max (timestamp) 
        from userhistory  
        group by userid) 
order by userid

但是如果我只想使用userid来自活动用户表的来查看活动用户,我该怎么做?

4

1 回答 1

0

子选择获取历史表中的所有用户,这些用户也存在于活动用户表中,之后您将子选择与主查询连接起来,这应该会为您提供您正在寻找的结果

SELECT USR.userid,field1, field2 
FROM userhistory USR
INNER JOIN (SELECT UH.userid, max (UH.timestamp) timestamp
            FROM userhistory UH
            INNER JOIN ActiveUsers AU ON AU.UserId = UH.UserId
            GROUP BY UH.userid) TMP ON TMP.userid = USR.userId AND USR.timestamp = UH.timestamp
ORDER BY USR.userid
于 2013-10-28T13:38:05.537 回答