2017-02-21 6 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. – 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

어떤 사람들은 이것에 능숙하다, thx 남자는 진짜로 그것을 평가한다 – fredan

+0

필요하다면 1 대의 차를 걸러내는 것이 가능한가? – fredan

+1

이 사이트에 새로운 점이있어서 불편을 드려 죄송합니다. 제목이 여전히 나쁘다면 다시 사과드립니다. – fredan