對於這些查詢,我假設product_id
在兩個表上(如果我猜錯了,你必須使用正確的字段名稱)。我還使用Product_Category.description
作爲具有類別名稱的字段的名稱。
此查詢會爲您帶來所有類別,並且在Product
表中找到的任何產品類別的計數均爲0,即而非。
如果Product
包含每個產品一個記錄的股票(即4本書將意味着4個Product
記錄),比COUNT()
是你想要的功能。
SELECT Products_Category.description, COUNT(Product.product_id) AS category_count
FROM Products_Category
LEFT OUTER JOIN Products ON Products_Category.product_id=Products.product_id
GROUP BY Products_Category.description
如果Product
包含了股票每型產品的一個記錄(即,4本書將意味着1個紀錄的4 product_count
),比SUM()
是你想要的功能。
SELECT Products_Category.description, SUM(Product.product_count) AS category_count
FROM Products_Category
LEFT OUTER JOIN Products ON Products_Category.product_id=Products.product_id
GROUP BY Products_Category.description
如果你只想要返回的記錄,當你在該類別中有庫存,改變LEFT OUTER JOIN
到INNER JOIN
:
SELECT Products_Category.description, SUM(Product.product_count) AS category_count
FROM Products_Category
INNER JOIN Products ON Products_Category.product_id=Products.product_id
GROUP BY Products_Category.description
我建議,包括一個鏈接到sqlfiddle.com與DDL以及一些樣品數據全部設置,以便人們可以給出更好的答案。 – jmoreno