2012-07-05 79 views
0

我在表'products_items'的数据库中列出了一定数量的产品。其中一系列与产品类别有关,其名称可以在名为“产品”的单独表格中找到。我试着去确定这些计数通过JOIN使用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.然而,查询适用于任何具有< = 2项目的类别。有没有办法纠正这个计数输出适当的金额?

回答

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的要在亲算个领域ducts_items, 如果没有该产品的products_items,它将获得0的计数。 而count(*)则为1,因为products_items中的产品组合whit 0行中有1行。

+0

完美,谢谢先生 – JimmyBanks

0

SELECT ,计数()作为ITEMCOUNT FROM商品P LEFT JOIN products_items PI 上(PRODUCTID)其中p.PRODUCTID = pi.PRODUCTID GROUP BY PRODUCTID ORDER BY order ASC,ASC PRODUCTID“;