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

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
...全文
19 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过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
  • 打赏
  • 举报
回复
发帖
MySQL
加入

5.6w+

社区成员

MySQL相关内容讨论专区
社区管理员
  • MySQL
申请成为版主
帖子事件
创建了帖子
2002-12-05 01:11
社区公告
暂无公告