我的问题并不那么难,我真的无法在任何地方找到答案。
我有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
我的#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
我该怎么做?
感谢您的帮助。
答案 0 :(得分:1)
使用COUNT(DISTINCT webshop_category.id),在这种情况下应该这样做。
答案 1 :(得分: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