2011-07-04 280 views
0

我有3个表,订单(orders_id,date,...),产品(product_id,product_name,product_price)和order_products(product_id,orders_id,product_id,products_quantity),我需要将产品分组以每件产品的产品和总量显示它们,以便eshop经理更容易知道每件产品已订购了多少件商品。MySQL count group by

我遇到了一些麻烦的思考正确的sql语法的机器人,我一直遇到问题,并希望得到一些帮助。

这是我迄今所做

select *, op.products_quantity as pquant, count(*) as `count` 
from orders o 
left join orders_products op on o.orders_id = op.orders_id 
left join products p on op.products_id = p.products_id 
group by op.orders_products_id 
order by op.products_id desc; 

回答

0

看你有什么,您要统计订单,不总结的订单量..

所以

如果你有

订单

monday 5 potatoes 
tuesday 2 carrots 
wednesday 3 potatoes 

你想

potatoes 8 
carrots 2 

在这种情况下,你想要做

select sum(quantity),item from orders group by item 

我没有很明白orders_products和订单之间的differende了。

也许有点样本数据会有帮助吗?

0
Select p.Product_name,sum(prodcuts_quantity) as OrderedQuantity from 
Order_products op join 
Products p on p.Product_id = op.product_id 
group by p.Product_name 
0

如果您需要总量和每个产品订单总额比你可以做,在下列方式

的选择P *,op.total_order,op.total_quantity从产品LEFT JOIN(SELECT COUNT(* )AS total_order,SUM(quantity)AS total_quantity FROM orders_products GROUP BY product_id)AS op ON p.id = op.product_id