MySQL COUNT в двух таблицах одновременно

0

Мой вопрос не так уж и трудный, я просто не могу найти ответ нигде.

У меня есть 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

Как я могу это сделать?

Спасибо за помощь.

Теги:
group-by

2 ответа

1
Лучший ответ

Используйте COUNT (DISTINCT webshop_category.id), который должен сделать это в этом случае.

1

добавьте в счетчик как:

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
  • 0
    (+1) DISTINCT внутри COUNT должен это сделать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню