繁体   English   中英

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

[英]How do I get mysql results for multiple date ranges?

我敢肯定有人会对此提供一个非常简单的答案,但我无法终生解决:我有3张桌子,看起来像这样:

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

(关系在此处具有相同名称的列上)

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

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

编辑:记录仪在其生命周期内可以在多辆车中使用,因此包括了日期。

谢谢

加雷斯

您可以这样做:

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替换为预期的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 = ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM