对于这些查询,我假设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