我有一张名为 UPDATES:
的表格这是此表的架构:
更新
UpdateID | UpdateTime
我有一个名为BADUPPDATES的表:
BUpdate_ID | UpdateID | Reason
如何获得具有相同原因且在0-59秒内发生的重复更新列表(更新表上的时间)?
答案 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;