假设我有一个名为UserID
的列和一个名为Active
个用户的表,然后是一个名为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
来查看活跃用户,我该怎么办?
答案 0 :(得分: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