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

有两个表.
A表放类别名称
内容如下
类别名 编码
工业化学 P05H
橡胶、塑料 P06Y
化工原料 P08H
...

B表放每个类别的具体产品
内容如下
产品名称 所属类
产品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
---------------------------------------------------------------

SELECT tA.id,Count(tB.id) as count
FROM
tA LEFT JOIN tB ON tA.id = tB.id GROUP BY tA.id;

Published At
Categories with 数据库类
comments powered by Disqus