如何统计和连接两个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
,并打印出这一点:
不具有一个值(从未被租用),其余不存在,我已经尝试了很多不同的方式与IFNULL
但没有得到任何地方。
答
Select
从Vehicle
表和Left Join
到Rental
表。这将包括从未被租用他们的计数(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
隐含的加入你在你的例子是相当于inner join
。通过左连接,您可以从源表中选择所需的所有行。如果与您要加入的表格匹配,它们也会显示。这是将数据追加到源表的好方法。
Downvote for stupid title。 – EJP
大家知道,读者会喜欢在帖子中付出的努力,所以“想要”和“thx”是不可取的。我们倾向于说,如果输入真实的单词太麻烦了,Stack Overflow可能不适合你。原因在于,问题不仅仅针对这里的海报 - 它为未来的许多读者提供了答案。 – halfer