1
我有一個分類表和產品表。產品有category_id,也有maker_id。MySQL分組子查詢優化
我試圖返回一個類別名稱的表,以及該類別是否包含屬於給定$ maker_id(如在PHP代碼中定義的)的任何產品的二進制文件。
我目前的方法計算每個類別有多少匹配產品,但我假設有一個更快的方法,因爲我只需要一個是/否。當前代碼:
SELECT
c.name,
SUM(CASE WHEN p.maker_id = '{$maker_id}' THEN 1 ELSE 0 END) AS already_used
FROM categories c
LEFT JOIN products p ON p.category_id = c.id
GROUP BY c.id
我在閱讀使用EXISTS,但我發現所有的例子都在WHERE子句中使用它。謝謝!
您需要更多的產品除了在從'maker_id'任何其他信息? – Naltharial
是的。我正在做另一個類似的計數,其中有多少處於各種「狀態」。基本上如下: SUM(作爲例子,當p.status ='ready'THEN 1 ELSE 0 END)爲ready_count。如果有一種方法可以將這些類型的分組查詢組合起來,那就太棒了。 – Charles