我正在使用php和mysql,我需要对连接3个表的产品总量求和:
订单产品:(表中有多个相同名称但金额不同的订单产品)
order_id (int)
product_name (varchar)
product_amount (int)
订单:
order_id (int)
order_date (varchar)
order_status (varchar)
供应商:
product_name (varchar)
product_amount (int)
所以,我想在一行中显示我销售了多少产品,状态是发货的,以及我从供应商那里订购了多少。下面两个例子中的任何一个都能帮助我实现我的目标。
比如:
Product Name (sum order_products) (sum supplier) Order status
first product 300 2500 Shipped_Only
second product 50 400 Shipped_Only
third product 10 600 Shipped_Only
Product Name (sum order_products) (sum supplier) Order status
first product 2200 2500 Not_Shipped
second product 400 400 Not_Shipped
third product 590 600 Not_Shipped
有什么例子或其他帮助,我可以做到这一点?
编辑:示例数据如下
订购产品:
order_id product_name product_amount
255 product 1 200
256 product 1 100
257 product 2 50
258 product 3 10
订单:订单号订单日期订单状态
255 09.05.2018 Shipped
256 09.05.2018 Shipped
257 10.05.2018 Not_Shipped
258 10.05.2018 Not_Shipped
供应商:产品名称产品金额
product 1 2500
product 2 400
product 3 600
2条答案
按热度按时间vuv7lop31#
据我所知,我认为这是你想要的,如果这不是你所期望的,请澄清。
您将需要使用GROUPBY子句,并且必须使用count()函数来计算GROUPBY子句的结果的行数。我正在写一个如何使用GROUPBY子句的例子,您需要根据需要修改查询。
您将需要查询,您可以编写另一个,只是替换
WHERE orders.order_status = 'Not_Shipped'
与WHERE orders.order_status = 'Shipped'
另外,如果希望所有查询都包含在一个查询中,只需删除where子句即可。kd3sttzy2#
您应该在聚合的子选择上使用联接。