我确信有人会对此有一个非常简单的答案,但我无法解决这个问题:我有3张桌子看起来像这样:
Vehicles: Vehicle_id, Reg_number...
Datalogger: Logger_id, event, status, date...
Vehicle_Loggers: Vehicle_id, Logger_id, installed_from, installed_to
(关系在这里具有相同名称的列上)
使用这些表格,即使在不同时间安装了多个记录仪,我如何获得给定车辆日志(事件和状态)的整个历史记录?
我知道这可以使用游标完成,但这实际上是一个设置操作(获取已连接到车辆的记录器组,然后使用该记录器的给定日期范围获取每个记录器的报告)
编辑:记录器可以在其生命周期内用于多个车辆,因此包含日期。
由于
加雷
答案 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 = ...