2017-01-12 37 views
0

我在我的數據庫中有3個表格,如下所示:Travel,一個包含關於驅動程序的信息的表格,Travel包含關於旅行的信息以及DroveBy,a表顯示哪個驅動程序驅動哪個Ttravel(ID之間的關係)。我想寫一個查詢,它返回一個驅動程序的ID,它的名字和他旅行的日期最多。在下面的例子中,我想回:顯示日期和和對應於SQL中最大第三個值的ID

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

非常感謝

Driver

Travel

DroveBy

回答

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

希望這會幫助你。

+0

我很感興趣返回出發時間最長的日期,您將返回此處的最大日期... –

+0

您的意思是您期待arrival_time和start_time之間的最大時差? – Viki888

+0

是的,如果我不清楚,對不起 –

相關問題