MySQL同时在两个表中计数

MySQL同时在两个表中计数,mysql,sql,group-by,Mysql,Sql,Group By,我的问题并不难,我真的到处都找不到答案 我有三张桌子 webshop,webshop\u类别和webshop\u项目 我的问题是: SELECT webshops.id, webshops.name, webshops.tax, webshops.contact_name, webshops.contact_email, webshops.contact_phone, webshops.contact_address, COUNT(webshop_category.id), COUNT(webs

我的问题并不难,我真的到处都找不到答案

我有三张桌子

webshop
webshop\u类别
webshop\u项目

我的问题是:

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
我的#1网店有2个类别和4个项目。但在这个问题上,它说:

id  ...  COUNT(webshop_category.id)  COUNT(webshop_item.id)
 1                    4                         4
但我只有两个类别。所以我希望它是:

id  ...  COUNT(webshop_category.id)  COUNT(webshop_item.id)
 1                    2                         4
我该怎么做


感谢您的帮助。

使用计数(DISTINCT webshop\u category.id),在这种情况下应该这样做。

在计数内放置一个DISTINCT,如:

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
(+1)计数内的DISTINCT应执行此操作。