在同一主键上加入3个表

时间:2013-07-07 14:59:34

标签: sql join left-join

我有3次旅行(trip_id,trip_name),事件(event_id,trip_id,event_name)和图像(image_id,trip_id,image_name)。

我想加入所有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次旅行,1个图像和3个事件对应。我得到3作为'image_count`而不是1

1 个答案:

答案 0 :(得分:2)

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