2014-09-29 54 views
0

我有三個表像這樣:如何從三個表中獲取價值?

-drivingtime 
    +id 
    +starttime 
    +stoptime 
-fuel 
    +id 
    +timestamp 
    +fuellevel 
-addingfuel 
    +id 
    +timestamp 
    +fueladding 

,我預計將顯示開始時間,停止時間,fuellevel(在開始時間),fuellevel(在停止時間),fueladding在同一屏幕上。那我到底需要做什麼?我搜索谷歌的解決方案,但其他問題是完全不同的。

我想:

SELECT startTime and stopTime 
from tblDrivingTime d 
left join tblFuel f on d.startTime = f.timestamp 
left join tblFuel f on d.stopTime = f.timestamp 
left join tblDoXang x on d.startTime < x.timestamp < d.stopTime 
+4

請添加您的嘗試以實現您的結果 – 2014-09-29 07:24:07

+0

您的意思是說有一些方法可以做到嗎? – dailammoc 2014-09-29 07:28:17

+0

您是否聽說過'sql'中的'JOIN'? – Wanderer 2014-09-29 07:33:15

回答

1

這裏是返回你正在尋找的結果的查詢:

SELECT DT.starttime 
    ,DT.stoptime 
    ,FB.fuellevel AS `startfuellevel` 
    ,FE.fuellevel AS `stopfuellevel` 
    ,(SELECT COUNT(AF.id) 
    FROM addingfuel AF 
    WHERE AF.timestamp BETWEEN DT.starttime AND DT.stoptime) AS `nbaddingevents 
FROM drivingtime DT 
INNER JOIN fuel FB ON FB.timestamp = DT.starttime 
INNER JOIN fuel FE ON FE.timestamp = DT.stoptime 

希望這會幫助你。

+0

這就像一個魔法,非常感謝你 – dailammoc 2014-09-29 10:02:14