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

标签 php mysql

我是新手,遇到了这个问题 我有两张 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/

相关文章:

PHP DOMDocument appendChild 到根目录末尾

php - Magento 产品图片未调整大小

php - 如何在 APC 缓存中存储 PHP session ?

javascript - Ajax 请求不返回在 Internet Explorer 中初始 AJAX 请求期间添加的数据

mysql - 计算不同的元素并只返回一个

php - JavaScript:If 子句部分执行

javascript - 在循环中从 PHP 调用 Javascript 函数

php - 我的 wordpress 主题需要哪个功能? query_posts()、get_posts()、get_post()

mysql - A "recomendations"表结构

java - 上传图像时输入未存储在数据库中