我有一个mysql db表,记录用户登录和注销活动。我需要选择所有用户记录谁没有重新登录后20分钟内注销。
例如:表:日志
ID | User | Event | Time
-----------------------------
1 | 1 | LOGIN | 10:00:00
2 | 2 | LOGIN | 10:05:00
3 | 3 | LOGIN | 10:15:00
4 | 1 | LOGOUT | 11:00:00
5 | 3 | LOGOUT | 11:01:00
6 | 2 | LOGIN | 12:20:00
7 | 2 | LOGOUT | 12:30:00
8 | 1 | LOGIN | 12:31:00
9 | 2 | LOGIN | 12:55:00
根据此示例表,必须显示在注销和登录之间超过间隔20分钟的用户。用户1超出记录4和8之间的20分钟间隔用户2超出记录7和9之间的20分钟间隔
所以这应该说明
ID | User
----------
4 | 1
8 | 1
7 | 2
9 | 2
如何编写查询来完成此操作?
2条答案
按热度按时间vyu0f0g11#
如果两排相隔20分钟,你似乎对它们都感兴趣。以下尝试模拟超前和滞后:
或者,尝试以下方法,除了将两行放在一起之外,其他方法似乎有效:
flvtvl502#
这回答了一个问题:
我需要选择所有用户记录谁没有重新登录后20分钟内注销。
您的示例结果包括登录结果。根据你提出的问题,目前还不清楚这些是如何定义的。