我怎样才能在这些多个表中使用sql count?

时间:2015-10-24 13:09:40

标签: php mysql database

我仍然是一个php / mysql新手,我正在研究mysql表关系概念,我遇到了在多个表中使用mysql计数的问题。这是我的数据库结构。

**product table**
id    product_name  product_img      groupeid
1     Sneaker Mark  sneaker_adi.png     1
2     bag Eric      bageric.png         2
3     Sneaker Etoi  sneakeretoi.jpg     1

**groupe table**
group_id  group_name
 1         men
 2         women

**category table**
catid   catname
 1      sneaker-shoes
 2      bag-woman

**productcategory table**
  prod_id    cat_ID
   1           1
   2           2
   3           1

我想要做的是使用mysql确定运动鞋的数量。

我们可以看到db中运动鞋的数量是2。

但是如何在这些多个表中使用**count()**

我试过这样;

$sql = "SELECT COUNT(*) product.id,product_name,catname FROM product INNER JOIN productcategory ON product.id = prod_id INNER JOIN category ON catid = cat_ID WHERE catname='sneaker-shoes'"; 

我得到的错误如下:

Fatal error: Call to a member function execute() on a non-object in C:\wamp\www\kbashopping\Homme\index.php on line 32

希望我能清楚地揭露这个问题,任何帮助和帮助都会受到赞赏

由于

2 个答案:

答案 0 :(得分:0)

如果您只查看计数,请仅提及Select子句中的计数短语。

更改:

SELECT COUNT(*) product.id,product_name,catname FROM 

到:

SELECT COUNT(product.id)  FROM 

答案 1 :(得分:0)

SELECT count (pc.cat_ID) FROM productcategory pc inner join category c on c.catid = pc.cat_ID where c.catname = 'sneaker shoes';

这将在mysql中构建一个临时表,该表连接类别和产品类别,但仅包括catname为sneaker shoes的结果。然后它选择一个列来运行计数操作,并返回计数结果。