PHP / MySQL计数项目订单

时间:2017-04-27 17:31:18

标签: mysql sql

I'm sorry for black boxes, those are the company name

网站销售带有定价计划的虚拟服务,这是数据库结构......项目是实际服务,产品是定价计划(如专业,商业,经销商等)。

问题是要计算所有项目的总订单数,但是在order_products表中我只保留产品,所以通过product_id进行分组的简单连接我认为对于这种情况不起作用。我在stackoverflow中看到很多问题,人们只计算产品,但我怎样才能计算项目订单。我可以在业务逻辑部分用PHP做这件事,因为我认为我能够获得产品订单数,但我想知道是否有可能使用MySQL计算项目订单

我很抱歉截图中有黑框,这些是公司名称。 这就是我尝试获取产品订单的方式。

SELECT 
 p.name,
 COUNT(*) AS db
 FROM order_products AS op
 LEFT JOIN orders AS o ON op.order_id= o.id
 INNER JOIN products AS p ON p.id = op.product_id 
 GROUP BY op.product_id
 ORDER BY COUNT(op.id) DESC

P.S。项目< - >产品关系是多对多的,但在业务逻辑中它是一对多的,所以我们可以假设每个产品只属于一个项目。

1 个答案:

答案 0 :(得分:2)

由于订单表中没有数量字段,您只需要一个简单的连接:

select pp.project_id, count(*) as project_order_count
from project_product as pp
inner join order_products as op
on op.product_id = pp.product_id
inner join orders as o
on o.id = op.order_id
where o.some_date between '01/12/2017' and '03/10/2017'
group by pp.project_id