2013-07-07 23 views
1

我有3个表格行程(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` 

有1个行程为USER_ID =“9”和1的图像和对应于它3个事件。我得到3作为'image_count'而不是1

回答

2

您需要使用distinct来获取图像数量。因为所选表格中有三个相同的图像值

+0

感谢使用不同的工作。我是否应该使用任何其他连接,以便每行只有一行? – user2558251