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没问题。我希望它能起作用。如果有问题,请告诉我。如果没有,你可以接受答案让别人去寻找。