Задать вопрос

Несколько COUNT() + JOIN = одинаковые значения?

Есть выборка из базы, в которой делается JOIN двух разных таблиц, по этим двум таблицам делается COUNT().

Дело в том, что оба этих каунта почему-то имеют абсолютно одинаковое значение.

Пример запроса:
SELECT
			`t`.`id`,`t`.`title`,
			COUNT(`r`.`id`) AS `rcnt`,
			COUNT(`f`.`id`) AS `fcnt`
	FROM
			`table` AS `t`
	LEFT JOIN
			`rtable` AS `r` ON `t`.`id` = `r`.`r_id`
	LEFT JOIN
			`ftable` AS `f` ON `f`.`w_id` = `t`.`w_id`
	GROUP BY
			`t`.`id`



(изменил имена полей, отсюда может быть не совсем верный запрос, но суть должна быть понятна)

После чего rcnt и fcnt имеют одинаковое значение по непонятной причине.

Может кто-нибудь знает почему так и как этого избежать?
  • Вопрос задан
  • 6502 просмотра
Подписаться 4 Оценить Комментировать
Решение пользователя Ogra К ответам на вопрос (3)
Ogra
@Ogra
Попробуйте COUNT(DISTINCT r.id).
Ответ написан