我是新手,遇到了这个问题 我有两张 table
类别 - CatId - 猫名
产品 - 产品编号 - CatId - 产品名称
我想在显示带有计数产品的类别时计算类别中有多少产品,我正在使用此查询
SELECT * , COUNT(Product.ProductId) AS NumberProducts FROM Category
JOIN Product
ON Category.CatId = Product.CatId
GROUP BY Product.CatId
如果我在表 Product 中存在带有 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
希望对您有所帮助。
关于php - 如何使用 JOIN 和 GROUP BY 从两个表中计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33305284/