查询以获取自上次登录以来的所有用户活动

时间:2016-05-24 11:36:24

标签: mysql

我想创建一个查询以取回所有用户上次登录日期以及自上次登录以来他们已回答的问题。

我有以下查询可以执行我正在寻找的内容但是使用单个用户而不是所有用户。

SELECT l.user_id, 
   Count(*) attemptsSinceLastLogin 
FROM   production.score s 
   JOIN processedquestion pq 
     ON s.attempt_id = pq.attempt_id 
   JOIN login l 
     ON l.user_id = pq.user_id 
WHERE  l.user_id = 123
   AND s.selected_answer IS NOT NULL 
   AND pq.attempt_datetime > (SELECT Max(in_datetime) 
                              FROM   production.login 
                              WHERE  user_id = 123); 

我也有这个查询可以获取所有用户及其上次登录日期,但是他们没有回答过多少问题。

SELECT user_id, 
   Max(in_datetime) 
FROM   production.login 
GROUP  BY user_id 

我无法使用这两个查询来尝试提出一个可以一次性回收所有数据的查询。任何帮助表示赞赏

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT l.user_id, 
       Count(*) attemptsSinceLastLogin 
FROM   production.score s 
   JOIN processedquestion pq 
     ON s.attempt_id = pq.attempt_id 
   JOIN login l 
     ON l.user_id = pq.user_id 
   JOIN (SELECT user_id, 
         Max(in_datetime) AS last_login
         FROM   production.login 
         GROUP  BY user_id) t
     ON l.user_id = t.user_id
WHERE  s.selected_answer IS NOT NULL 
       AND pq.attempt_datetime > t.last_login
GROUP BY l.user_id