Mysql 在其他事件之后发生的特定项目的特定事件列表

Mysql 在其他事件之后发生的特定项目的特定事件列表,mysql,sql,Mysql,Sql,我有一张类似于以下内容的表格: +--------+----------+--------+--------+ | itemID | actionID | date | userID | +--------+----------+--------+--------+ | 3 | a | 20-Apr | alice | | 4 | a | 1-Jun | bob | | 1 | b | 2-Jun | sam

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

+--------+----------+--------+--------+
| 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  |
+--------+----------+--------+--------+
场景如下:

我需要知道在上次任何用户在
项目ID Y上采取
actionID a
之后,
用户ID X
是否在
项目ID Y上采取了
actionID b

在非摘要中,这是用于密码管理器的

一些用户在
日期Z
项目ID Y
上修改密码
操作ID a
,我需要知道另一个用户
用户ID a
在修改
日期Z
后是否查看了
操作ID b

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

尝试以下操作:

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执行操作的情况。现在,如果还没有人这样做,它将不会返回任何结果。

谢谢,我将尝试一下。对不起,我还没有足够的代表投票支持你。@user38858没问题。我希望它能起作用。如果有问题,请告诉我。如果没有,你可以接受答案让别人去寻找。