You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询需求:获取各分类名称及对应商品数量

获取分类名称及对应商品数量的SQL语句

嗨,这就给你搞定这条SQL,还会把逻辑说清楚,让你明白为什么这么写~

先把你的表结构明确一下:

分类表(假设表名为categories)

IDcategory_name
1Pizza
2Salad
3Desert
4Sandwiches

商品表(假设表名为products)

IDnamecategory
1Margherita1
2Quatro Stagioni1
3Pancakes3
4Some Salad2

最终SQL语句

SELECT 
    c.category_name,
    COUNT(p.ID) AS product_count
FROM 
    categories c
LEFT JOIN 
    products p ON c.ID = p.category
GROUP BY 
    c.ID, c.category_name
ORDER BY 
    c.ID;

逻辑解释

  • 用LEFT JOIN是为了保留所有分类,哪怕这个分类下还没有商品(比如你的Sandwiches分类),如果用INNER JOIN就会漏掉这类没有商品的分类。
  • COUNT(p.ID)统计每个分类下的商品数量,因为如果没有匹配的商品,p.ID会是NULL,COUNT会自动忽略NULL值,所以结果会显示0而不是NULL。
  • GROUP BY包含分类的ID和名称,确保每个分类作为单独的一行返回,避免因为分类名称重复(虽然你这里没有,但做个通用处理更稳妥)导致的分组错误。
  • ORDER BY c.ID是为了让结果和分类表的ID顺序一致,看起来更清晰。

执行这条SQL后,你会得到如下结果:

category_nameproduct_count
Pizza2
Salad1
Desert1
Sandwiches0

内容的提问来源于stack exchange,提问作者Mitca Vicentiu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:18:02