对于这些查询,我假设product_id
是在两个表上(如果我猜错了,你必须使用正确的字段名称)。我也Product_Category.description
用作具有类别名称的字段的名称。
此查询将为您获取所有类别,以及在表中未找到的任何产品类别的计数为 0 。Product
如果库存Product
中的每个产品都包含一条记录(即,4 本书意味着 4Product
条记录),那么这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 条记录,其中 a为 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