如何获取多个日期范围的mysql结果?

时间:2012-01-25 11:18:53

标签: mysql sql

我确信有人会对此有一个非常简单的答案,但我无法解决这个问题:我有3张桌子看起来像这样:

Vehicles: Vehicle_id, Reg_number...
Datalogger: Logger_id, event, status, date...
Vehicle_Loggers: Vehicle_id, Logger_id, installed_from, installed_to

(关系在这里具有相同名称的列上)

使用这些表格,即使在不同时间安装了多个记录仪,我如何获得给定车辆日志(事件和状态)的整个历史记录?

我知道这可以使用游标完成,但这实际上是一个设置操作(获取已连接到车辆的记录器组,然后使用该记录器的给定日期范围获取每个记录器的报告)

编辑:记录器可以在其生命周期内用于多个车辆,因此包含日期。

由于

加雷

1 个答案:

答案 0 :(得分:1)

你可以这样做:

select v.Reg_number, d.* from Vehicles v
inner join Vehicle_Loggers vl on vl.Vehicle_id = v.Vehicle_id
inner join Datalogger d on d.Logger_id = vl.Logger_Id
where v.Reg_number = ...

只需将Reg_number替换为预期的一个。


考虑到日期,可能会是这样的:

select v.Reg_number, d.* from Vehicles v
inner join Vehicle_Loggers vl on vl.Vehicle_id = v.Vehicle_id
inner join Datalogger d on d.Logger_id = vl.Logger_Id and d.date between vl.installed_from and vl.installed_to
where v.Reg_number = ...