如何统计和连接两个MySQL表?

问题描述:

我想写出租车的次数,我只是不能得到它的工作,我有两张桌子。一个叫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

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