我的数据库中有3个表,你可以在下面看到:旅行,一个包含司机信息的表,旅行,包含旅行信息的表,以及DroveBy,一个显示哪个司机驾驶哪个旅行的表(ID之间的关系)。我想写一个查询,返回一个司机的ID,它的名字,以及他最常旅行的日期。在下面的示例中,我想返回:
1-Armand-2012-07-18
2-Elish-2012-06-18
3-Armand-2012-07-18. 非常感谢



发布于 2017-01-12 20:23:11
您可以像下面这样查询start_time和arrived_time之间的差异的max
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;这给了我下面的结果

希望这能帮到你。
https://stackoverflow.com/questions/41612656
复制相似问题