2013-07-07 5 views
1

테이블 trip (trip_id, trip_name), 이벤트 (event_id, trip_id, event_name) 및 이미지 (image_id, trip_id, image_name)가 있습니다.동일한 기본 키에 3 개의 테이블을 결합하십시오.

모든 여행에 대해 이벤트 및 이미지 계산에 필요한 3 개의 테이블을 모두 가입하고자합니다. 아래는 내가

SELECT `trips`.`trip_id`,`trips`.`name`, COUNT(`images`.`image_id`) as 
`image_count`, COUNT(`events`.`event_id`) as `event_count` FROM 
`trips` LEFT JOIN `images` ON `trips`.`trip_id` = 
`images`.`trip_id` LEFT JOIN `events` ON `trips`.`trip_id` = 
`events`.`trip_id` WHERE `trips`.`user_id` = "9" GROUP BY 
`trips`.`trip_id` 

USER_ID = "9"1 이미지와 그것에 대응하는 3 개 이벤트 1 여행이 있습니다를 쿼리 사용하고있다. 나는 1 대신에 'image_count'를 3으로 얻고있다.

답변

2

이미지 수를 얻기 위해서는 distinct를 사용할 필요가있다. 선택한 테이블에 동일한 이미지 값이 3 개 있으므로

+0

별개의 기능을 이용해 감사합니다. 각기 다른 행을 하나씩 얻을 수 있도록 다른 참여를 사용해야합니까? – user2558251

관련 문제