数据库中的产品数量

时间:2012-07-05 05:26:56

标签: mysql sql database

我在'products_items'表中的数据库中列出了一定数量的产品。其中一系列产品与一类产品有关,其名称可在名为“产品”的单独表格中找到。我试图通过{{1}使用PRODUCTID

来确定这些类别的数量

这是我的疑问:

JOIN

此处的问题是,包含0和1项的类别都返回值1.但是查询适用于具有< = 2项的任何类别。有没有办法纠正这个计数输出适当的数量?

2 个答案:

答案 0 :(得分: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_items中的产品中有1行组合了whit 0行。

答案 1 :(得分:0)

SELECT ,将()计为itemcount 来自产品p     LEFT JOIN products_items pi     on(PRODUCTID)其中p.PRODUCTID = pi.PRODUCTID 按产品分组 ORDER BY order ASC,PRODUCTID ASC“;