如何使用 JOIN 和 GROUP BY 从两个表中计数


How to count from two table using JOIN and GROUP BY

我是新手,并坚持这种情况我有两张桌子

类别- 猫咪- 猫名

产品- 产品编号- 猫咪- 产品名称

我想在使用此查询显示带有计数产品和 IM 的类别时计算类别中的产品数量

SELECT * , COUNT(Product.ProductId) AS NumberProducts FROM Category
JOIN Product
ON Category.CatId = Product.CatId
GROUP BY Product.CatId

如果我的产品存在于表产品中带有catid,则此查询可以正常工作,如果不是,我的类别将不会显示在类别列表中,则类别将消失。

请帮忙。提前致谢

选择 * 是问题所在 - 您正在寻找类别和产品计数的列表。

你会得到你所问的。(c 和 p 是别名,以使 SQL 更具可读性(

SELECT c.*, COUNT(p.ProductId) AS NumberProducts FROM Category as c
LEFT JOIN Product as p
ON c.CatId = p.CatId
GROUP BY c.CatId

生产

CatId   CategoryName    NumberProducts
1       T-Shirts        2
2       Sneakers        0
3       Boots           0 

希望有帮助。

SELECT * , COUNT(Product.ProductId) AS NumberProducts FROM Category
LEFT JOIN Product
ON Category.CatId = Product.CatId
GROUP BY Product.CatId

左加入应该可以解决问题