2010-09-18 55 views
0

我的問題並不難,我真的無法在任何地方找到答案。同時在兩個表中的MySQL COUNT

我有3張桌子。

webshopswebshop_categorywebshop_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 

但我只有2個類別。所以我想它是:

id ... COUNT(webshop_category.id) COUNT(webshop_item.id) 
1     2       4 

我該怎麼做?

感謝您的幫助。

回答

1

使用COUNT(DISTINCT webshop_category.id)應該在這種情況下執行此操作。

1

把不同的計數喜歡裏面:計數應該做這裏面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 
+0

(+1)。 – 2010-09-18 10:37:50