两表之间怎样按类别统计数量?包含数量为零的记录.解答后当天结帖

klggg 2002-12-05 01:11:01
有两个表.
A表放类别名称(product_class)
内容如下
类别名 编码
工业化学 P05H
橡胶、塑料 P06Y
化工原料 P08H
...

B表放每个类别的具体产品(product)
内容如下
产品名称 所属类
产品1 P05H
产品2 P06Y
产品3 P08H

这里所属类为表A的类别编码

要求
统计出A表每个类在B表的产品个数
比如得到属于 工业化学 类的产品总共有 5个

我用了以下SQL语句
SELECT product_class.className,count(product.id) as count
FROM
product_class,product
where
product.product_number=product_class.product_number
group by product_class.product_number

但出现一个问题,如果在A表的某个类别(如 工业化学 类)下在B表没有产品时
这个类别名也不会显示,也即 count 为零的记录全没了
我想实现以下的效果 请教大家了.

className count
工业化学 0
橡胶、塑料 6
化工原料 0
化肥农药 9
化学纤维 7
油漆、涂料 0
烟花爆竹 5
化学试剂、粘合剂 0
各种气体 3
化工、轻工 5
...全文
72 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
klggg 2002-12-05
  • 打赏
  • 举报
回复
OK!小弟真是太菜了!
shuixin13 2002-12-05
  • 打赏
  • 举报
回复

SELECT product_class.className,count(product.id) as count
FROM
product_class LEFT JOIN product ON product_class.product_number = product.product_number GROUP BY product_class.product_number;
klggg 2002-12-05
  • 打赏
  • 举报
回复
有两个表.
A表放类别名称(product_class)
内容如下
类别名 编码
工业化学 P05H
橡胶、塑料 P06Y
化工原料 P08H
...

B表放每个类别的具体产品(product)
内容如下
产品名称 所属类
产品1 P05H
产品2 P06Y
产品3 P08H

这里所属类为表A的类别编码

要求
统计出A表每个类在B表的产品个数
比如得到属于 工业化学 类的产品总共有 5个

我用了以下SQL语句
SELECT product_class.className,count(product.id) as count
FROM
product_class,product
where
product.product_number=product_class.product_number
group by product_class.product_number

但出现一个问题,如果在A表的某个类别(如 工业化学 类)下在B表没有产品时
这个类别名也不会显示,也即 count 为零的记录全没了
我想实现以下的效果 请教大家了.

className count
工业化学 0
橡胶、塑料 6
化工原料 0
化肥农药 9
化学纤维 7
油漆、涂料 0
烟花爆竹 5
化学试剂、粘合剂 0
各种气体 3
化工、轻工 5

56,940

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧