其他事件发生后特定事项的特定事件清单

时间:2014-06-05 20:19:28

标签: mysql sql

我有一张类似于以下内容的表格:

+--------+----------+--------+--------+
| itemID | actionID |  date  | userID |
+--------+----------+--------+--------+
|      3 | a        | 20-Apr | alice  |
|      4 | a        | 1-Jun  | bob    |
|      1 | b        | 2-Jun  | sam    |
|      5 | c        | 28-May | sally  |
|      4 | c        | 9-Apr  | sally  |
|      3 | b        | 24-Apr | bob    |
|      6 | b        | 29-Apr | bob    |
|      7 | a        | 15-May | alice  |
+--------+----------+--------+--------+

场景是这样的:

我需要知道UserID XactionID b 之后itemID Y是否已经{/ 1}} 上一次用户actionID aitemId Y actionID a 1}}。

在非抽象中,这是一个密码管理器。

有些用户需要在itemId Y date Z修改密码userID A,我需要知道其他用户actionId b在修改后是否已查看date Z {{1}}。

此外,如果用户修改了密码,我需要假设他们也在查看密码。

1 个答案:

答案 0 :(得分:2)

试试这个:

select *
from myTable t1
where userId = X and actionId = b and itemId = y
and t1.date > (select max(date) from myTable t2 where actionId = a and itemId = Y)

您可能希望在没有人对项目Y执行操作时处理此案例。现在,如果还没有人做过那个动作,它将不会返回任何内容。