我的数据库中有3个表格,如下所示:旅行,包含有关驾驶员信息的表格,旅行,其中包含有关旅行的信息,以及DroveBy,一张表格显示哪个司机驾驶哪个Ttravel(之间的关系) ID' S)。我想写一个查询,它返回一个驱动程序的ID,它的名字,以及他最常旅行的日期。在下面的示例中,我想返回:
1-Armand-2012-07-18
2-Elish-2012-06-18
3-Armand-2012-07-18.
非常感谢
答案 0 :(得分:0)
您可以在max
和start_time
之间获取arrived_time
之差,如下所示
select d.driver_id, d.name, t.travel_date
from(
select dB.driver_id,
max(timestampdiff(minute,start_time,arrival_time)) maxTime
from droveBy dB
join travel t on dB.travel_id = t.travel_id
group by dB.driver_id)t1
join travel t on t1.maxTime = timestampdiff(minute,t.start_time,t.arrival_time)
join droveBy dB on t1.driver_id = dB.driver_id and t.travel_id = dB.travel_id
join Driver d on dB.driver_id = d.driver_id;
这给了我以下结果
希望这会帮助你。