计算市场有多少产品

时间:2013-09-04 22:20:39

标签: mysql sql

目标

计算市场上有多少产品。

问题

查询只返回第一个结果,我想要每个产品的inMarketsQuantity

场景

这是查询:

Select product.Name As productName, 
       Count(marketProducts.ProductId) As inMarketsQuantity
From products As product
Join market_products As marketProducts On product.Id = marketProducts.ProductId
Join markets As market On marketProducts.MarketId = market.Id

结果如下:

+---------------+-------------------+
| productName   | inMarketsQuantity |
+---------------+-------------------+
| Playstation 3 | 15                |
+---------------+-------------------+

这就是我所期待的:

+---------------+-------------------+
| productName   | inMarketsQuantity |
+---------------+-------------------+
| Playstation 3 | 10                |
+---------------+-------------------+
| Xbox          | 5                 |
+---------------+-------------------+

我已经尝试了什么

我已经尝试过以下查询,但我收到 SQL错误(1064)

Select product.Name As productName, 
       Distinct(Count(marketProducts.ProductId)) As inMarketsQuantity

[...]

2 个答案:

答案 0 :(得分:1)

尝试按ProductId分组:

Select product.Name As productName,
    Count(marketProducts.ProductId) As inMarketsQuantity
From products As product
    Join market_products As marketProducts On product.Id = marketProducts.ProductId
    Join markets As market On marketProducts.MarketId = market.Id
GROUP BY marketProducts.ProductId

答案 1 :(得分:0)

Select product.Name As productName, 
       Count(marketProducts.ProductId) As inMarketsQuantity
From products As product
Join market_products As marketProducts On product.Id = marketProducts.ProductId
Join markets As market On marketProducts.MarketId = market.Id GROUP BY product.Name