【问题标题】:Product Count from Database数据库中的产品计数
【发布时间】:2012-07-05 05:26:56
【问题描述】:

我在“products_items”表中的数据库中列出了一定数量的产品。其中一系列与产品类别相关,其名称可在名为“产品”的单独表中找到。我试图通过JOINing 他们使用 PRODUCTID 的类别来确定这些数量

这是我的查询:

SELECT *, count(*) as itemcount 
FROM products 
    LEFT JOIN products_items
    USING(PRODUCTID) 
GROUP BY PRODUCTID 
ORDER BY `order` ASC, `PRODUCTID` ASC";

这里的问题是,具有 0 和 1 项的类别都返回值 1。但是,该查询适用于具有

【问题讨论】:

    标签: mysql sql database


    【解决方案1】:

    如果您指定要计算的内容:

    SELECT *, count(products_items.PRODUCTID) as itemcount 
    FROM products 
        LEFT JOIN products_items
        USING(PRODUCTID) 
    GROUP BY PRODUCTID 
    ORDER BY `order` ASC, `PRODUCTID` ASC";
    

    通过告诉mysql你想计算products_items中的一个字段, 如果该产品没有 products_items,它将计数为 0。 而 count(*) 给出 1,因为 products 中有 1 行,products_items 中有 0 行。

    【讨论】:

      【解决方案2】:

      SELECT , count() as itemcount FROM 产品 p 左连接 products_items pi on (PRODUCTID) 其中 p.PRODUCTID = pi.PRODUCTID 按产品分组 订购者order ASC, PRODUCTID ASC";

      【讨论】:

        猜你喜欢
        • 2016-05-29
        • 2011-11-27
        • 1970-01-01
        • 2014-02-12
        • 1970-01-01
        • 2018-08-27
        • 2011-07-30
        • 1970-01-01
        • 2011-02-26
        相关资源
        最近更新 更多