2017-02-21 29 views
-1

我想寫出租車的次數,我只是不能得到它的工作,我有兩張桌子。一個叫vehicle,另一個叫rental如何統計和連接兩個MySQL表?

在租賃是所有的「租賃」去當你預訂一輛車,所有的車輛存儲在車輛。這是我所做的幾乎可行的查詢。

SELECT vehicle.id,COUNT(rental.vid) as rented,IFNULL(rental.vid,0) as nothing, vehicle.make as make, vehicle.model as model, vehicle.regnr as regnr, vehicle.color as color, vehicle.state as state, vehicle.imgurl as img, vehicle.description as description, vehicle.id 
FROM rental,vehicle 
WHERE vid = vehicle.id GROUP BY vid 

,並打印出這一點:

The Tables it prints out

不具有一個值(從未被租用),其餘不存在,我已經嘗試了很多不同的方式與IFNULL但沒有得到任何地方。

+1

Downvote for stupid title。 – EJP

+0

大家知道,讀者會喜歡在帖子中付出的努力,所以「想要」和「thx」是不可取的。我們傾向於說,如果輸入真實的單詞太麻煩了,Stack Overflow可能不適合你。原因在於,問題不僅僅針對這裏的海報 - 它爲未來的許多讀者提供了答案。 – halfer

回答

1

SelectVehicle表和Left JoinRental表。這將包括從未被租用他們的計數(rental.vid)爲0的車輛:

SELECT vehicle.id 
,COUNT(rental.vid) as rented 
, vehicle.make as make 
, vehicle.model as model 
, vehicle.regnr as regnr 
, vehicle.color as color 
, vehicle.state as state 
, vehicle.imgurl as img 
, vehicle.description as description 
FROM vehicle 
left join rental on vid = vehicle.id 
GROUP BY vehicle.id 

Here is a simplified example

隱含的加入你在你的例子是相當於inner join。通過左連接,您可以從源表中選擇所需的所有行。如果與您要加入的表格匹配,它們也會顯示。這是將數據追加到源表的好方法。

+0

有些人只是爲了善於這一點,thx男人真的很感激它 – fredan

+0

是否有可能過濾出一輛車,如果需要? – fredan

+1

即時通訊新的到這個網站,所以我很抱歉我可能造成的任何不便,如果標題仍然不好,那麼我再次道歉。 – fredan