首页 > 解决方案 > MySQL Select Query 用于在两个表中获取特定时间内的数据

问题描述

我在粘贴的屏幕截图中有以下两个表,使用这些表查询对我来说可以获取过去 24 小时的数据,因为这会给我表中的第一个设备。

现在我需要新的查询,即 T1 中的第二个设备也应该出现,因为该设备在 T1 中的创建时间在 T2 插入时间的 24 小时内。

T1 中的第三个设备不应该出现在我的查询结果中,因为它在 T1 中的创建时间比 T2 中的插入时间长 24 小时。

我正在寻找最后两点的查询。

Select a.device,[a.create time], b.device, [b.insert time] 
from T1 a, T2 b 
where a.device = b.device and a.time >= DATE_SUB(NOW(), INTERVAL 24 HOUR)

在此处输入图像描述

标签: mysqlsqlselect

解决方案


a.device = b.device应该是您的加入条件。

Select a.device,[a.create time], b.device, [b.insert time] 
from T1 a inner join T2 b on a.device = b.device
where 
    a.time >= DATE_SUB(NOW(), INTERVAL 24 HOUR) --first condtion
    or a.time <= DATE_SUB(b.time, INTERVAL 24 HOUR) --second condition

推荐阅读