在SQL中显示与最大第三个值对应的日期和ID

时间:2017-01-12 11:57:20

标签: mysql sql

我的数据库中有3个表格,如下所示:旅行,包含有关驾驶员信息的表格,旅行,其中包含有关旅行的信息,以及DroveBy,一张表格显示哪个司机驾驶哪个Ttravel(之间的关系) ID' S)。我想写一个查询,它返回一个驱动程序的ID,它的名字,以及他最常旅行的日期。在下面的示例中,我想返回:

1-Armand-2012-07-18
2-Elish-2012-06-18
3-Armand-2012-07-18. 

非常感谢

Driver

Travel

DroveBy

1 个答案:

答案 0 :(得分:0)

您可以在maxstart_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;

这给了我以下结果

enter image description here

希望这会帮助你。