2017-02-21 20 views
-1

車が借りられた回数を書きたいと思います。私は仕事をすることができません。私は2つのテーブルを持っています。 1つはvehicle、もう1つはrentalです。2つの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。 – EJP

+0

あなたが知っているとおり、読者は投稿の努力に感謝しています。だから、 "wanna"と "thx"はお勧めできません。実際の単語を入力するのが面倒すぎると、Stack Overflowはおそらくあなたのためではないと言う傾向があります。その理由は、質問がここのポスターだけでなく、将来の多くの読者のためであるということです。 – halfer

答えて

1

SelectVehicleテーブルおよびLeft JoinからRentalテーブル。

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と同等である必要があり参加:これは賃貸されていなかったし、そのカウント(rental.vid)が0になる車が含まれます。左結合では、ソース表から必要なすべての行を選択します。あなたが参加しているテーブルに一致するものがあれば、同様に表示されます。これは、ソーステーブルにデータを追加するための良い方法です。

+0

いくつかの人がこれをうまくやっているだけで、本当にそれは感謝しています – fredan

+0

必要ならば1台の車を取り除くことは可能ですか? – fredan

+1

私はこのサイトに新しいので、私は、タイトルがまだ悪い場合は、私は再びそれを謝罪した可能性がありますご迷惑をおかけして申し訳ありません。 – fredan

関連する問題