@lolrofl01

Как построить такой запрос sql?

Привет!
Есть 2 таблицы: regions (регионы) и shops (магазины). У одного региона может быть много магазинов. Соответственно в таблице shops есть столбик region_id, который и указывает принадлежность магазина к региону. Задача стоит следующая: вытащить все регионы с количеством магазинов в каждом из них.

Я набросал вот такой код, но почему-то он работает некорректно (в большинстве регионов кол-во магазинов показывает больше, чем вообще сумарно магазинов существует в таблице shops
SELECT regions.*, SUM(shops.id) as shopsTotal
FROM regions
LEFT JOIN shops
ON shops.region_id = regions.id
GROUP BY regions.id
  • Вопрос задан
  • 71 просмотр
Решения вопроса 2
поменяйте SUM(shops.id) на COUNT(shops.id)
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SUM(shops.id) - это сумма всех id, а не их количество. Используйте COUNT(*)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы