插入连接表的计数

时间:2016-05-06 02:54:20

标签: mysql

我有两张桌子。一个是类别ID,另一个是产品表。我想计算每个类别ID的产品数量,查询如下。

SELECT hkgg_emall_goods_class.gc_id, COUNT(*)  as productcount
FROM hkgg_emall_goods_class
LEFT JOIN hkgg_emall_goods
ON hkgg_emall_goods.gc_id=hkgg_emall_goods_class.gc_id GROUP BY  hkgg_emall_goods_class.gc_id ;

它显示了我想要的内容,除了查询显示某些行的计数为1,即使它们没有关联的产品,并且当实际有一个产品关联时,某些行为1计数。

我想要你的建议 1)如何解决这个问题 2)我在类别表中添加了gc_productcount列。如何将计数查询插入每行的gc_productcount列?

INSERT INTO `hkgg_emall_goods_class.gc_productcount`

当我将它放在选择计数查询前面时,此查询效果不佳。

P.S。我已经在stackoverflow中浏览了另一个线程,但运气不足以浏览类似的解决方案。

提前谢谢你。

1 个答案:

答案 0 :(得分:0)

假设hkgg_emall_goods表具有主键或至少一个唯一键,那就是您想要计算的内容。即你不想COUNT(*),你想要COUNT(hkgg_emall_goods.id)

假设主键为hkgg_emall_goods.id,那么您的查询将如下所示:

SELECT
    hgc.gc_id,
    COUNT(hg.id) AS productcount
FROM hkgg_emall_goods_class hgc
    LEFT JOIN hkgg_emall_goods hg ON hg.gc_id = hgc.gc_id
GROUP BY
    hgc.gc_id