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应执行此操作。