在一段时间内获取重复更新

时间:2014-04-27 12:25:23

标签: mysql

我有一张名为 UPDATES:

的表格

这是此表的架构:

更新

UpdateID | UpdateTime

我有一个名为BADUPPDATES的表:

BUpdate_ID | UpdateID | Reason

如何获得具有相同原因且在0-59秒内发生的重复更新列表(更新表上的时间)?

1 个答案:

答案 0 :(得分:0)

如果您想要及时更新(或更少)的更新列表,请使用联接:

select bu1.UpdateId, bu2.UpdateId as Duplicate_UpdateID
from badupdates bu1 join
     badupdates bu2
     on bu2.Reason = bu1.Reason and
        bu2.time >= bu.time and bu2.time <= bu.time + interval 59 second and
        bu2.UpdateID <> bu.UpdateID;

这将返回所有可能的重复对。

编辑:

啊,现在我知道时间在哪里,需要更多的联接:

select bu1.UpdateId, bu2.UpdateId as Duplicate_UpdateID
from updates b1
     join
     updates b2
     on b2.time >= b1.time and b2.time <= b1.time + interval 59 second and
        b2.UpdateId <> b1.UpdateId join
     badupdates bu1
     on bu1.UpdateId = b1.UpdateId join
     badupdates bu2
     on bu2.UpdateId = b2.UpdateId and
        bu2.Reason = bu1.Reason;