Мой вопрос не так уж и трудный, я просто не могу найти ответ нигде.
У меня есть 3 таблицы.
webshops
, webshop_category
и webshop_item
.
Мой запрос:
SELECT webshops.id, webshops.name, webshops.tax, webshops.contact_name, webshops.contact_email, webshops.contact_phone, webshops.contact_address, COUNT(webshop_category.id), COUNT(webshop_item.id)
FROM webshops, webshop_category, webshop_item
WHERE webshops.id = webshop_category.ws_id AND webshop_category.id = webshop_item.ws_category
GROUP BY webshops.id
Интернет-магазин My # 1 получил 2 категории по 4 предмета. Но в этом вопросе говорится:
id ... COUNT(webshop_category.id) COUNT(webshop_item.id)
1 4 4
Но у меня всего 2 категории. Поэтому мне бы хотелось:
id ... COUNT(webshop_category.id) COUNT(webshop_item.id)
1 2 4
Как я могу это сделать?
Спасибо за помощь.
Используйте COUNT (DISTINCT webshop_category.id), который должен сделать это в этом случае.
добавьте в счетчик как:
SELECT webshops.id, webshops.name, webshops.tax, webshops.contact_name, webshops.contact_email, webshops.contact_phone, webshops.contact_address, COUNT(DISTINCT webshop_category.id), COUNT(webshop_item.id)
FROM webshops, webshop_category, webshop_item
WHERE webshops.id = webshop_category.ws_id AND webshop_category.id = webshop_item.ws_category
GROUP BY webshops.id