1

旅行 (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 件あり、それに対応する画像が 1 件とイベントが 3 件あります。1 ではなく 'image_count` として 3 を取得しています

4

1 に答える 1

2

画像数を取得するには、distinct を使用する必要があります。選択したテーブルに同じ画像の値が 3 つあるため

于 2013-07-07T15:02:27.487 に答える