我想數着至少有一個產品從下列查詢MySQL的SELECT COUNT
SELECT count(*)
FROM company c
JOIN product p on c.id = product.company_id
WHERE p.is_deleted = 0
AND c.is_customer = 1
AND c.company_type_id = 5
GROUP by c.id
所以公司的數量,這說明我的所有公司的名單,以及產品對每個計公司。
我試圖實現的是從上述結果中計算出的公司數量。
這是可以實現如下:
SELECT count(*)
FROM (
SELECT count(*)
FROM company c
JOIN product p on c.id = product.company_id
WHERE p.is_deleted = 0
AND c.is_customer = 1
and c.company_type_id = 5
GROUP by c.id) AS t1
所以,這給了我正確的結果,但我只是想知道是否有做事情的更有效的方式。
看來你在這裏做了很好的工作。我認爲沒有改善的餘地,除非你真的遭遇性能問題 – BigFatBaby 2011-03-16 11:11:40
當然,上面的查詢將永遠返回1?!你有一個'COUNT(*)'返回一個單一的字段,然後你再次選擇COUNT(*)'單個字段...我錯過了什麼嗎? – anothershrubery 2011-03-16 11:26:50
@another:內部計數(*)有'group by' - 每個公司返回一個計數 – Blorgbeard 2011-03-16 11:37:58