php - MySQL总结关系数据库中的数字

标签 php mysql sql database

我正在制作一个网络应用程序,让客户订购任何商品。为此,我制作了一个包含下表的 MySQL 数据库:

  • 客户
  • 订单
  • 订单商品
  • 产品

customers 表中是有关此人的所有信息,例如:

  • 客户ID,用于主键和自增(id)
  • 名字 (first_name)
  • 姓氏(last_name)
  • 电子邮件地址 (email_adress)
  • 客户信息 (customer_info)

示例:

enter image description here

orders 表中是关于它的所有具体信息,例如:

  • 订单ID,用于主键和自增(id)
  • 哪个客户订购了它,与 customers 表 (customer_id) 中的 id 字段相关联
  • 订单信息(order_info)
  • 订单需要去的地点(location)
  • 订单创建(created)的时间

示例:

enter image description here

order-items 表中是每个客户订购的所有项目,这是由上表中的 order-id 链接的。

  • ID,用于主键和自增,不用于任何关系(id)
  • 订单 ID,用于哪个产品对应哪个订单。这与 orders 表 (order_id)
  • 中的 id 字段相关联
  • 产品 ID,用于他们订购的产品,它与 products 表中的 id 字段相关联。 (product_id)
  • 他们订购该产品的数量(数量)

示例:

enter image description here

products表中是关于产品的所有信息:

  • ID,用于主键和自动递增,这与 order_items 表 (id) 中的 product_id 字段相关联
  • 产品名称(名称)
  • 产品描述(description)
  • 产品的价格(价格)

示例:

enter image description here

问题

Bob 订购了 product_id 2,乘以 3。这是价格为 2.50 的牛肉三明治,我们必须乘以 3,因为它已订购 3次。这是7.50

Bob 还订购了 product_id 3,乘以 5。这是价格为 3.00 的鸡肉三明治,我们必须乘以 5,因为它已被订购5次。将于 15.00

发布

现在我需要总结一下。即 15.00 + 7.50 = 22.50

问题

如何获得与 product_id 的实际价格相关联的 product_id?然后我可以乘以数量。

然后用相同的 order_id 总结所有这些值

对于第一个订单,我们得到产品 2(数量 3)和产品 3(数量 5),它们应该相加 2.503 + 3.005 = 22.50

最佳答案

你问,“ 如何将 product_id 与 product_id 的实际价格关联起来?然后我可以乘以数量......然后用相同的 order_id 总结所有这些值。

像这样:

SELECT OI.Order_ID, Sum(OI.Quantity * P.Price) Total_Price
FROM `order-items` OI
INNER JOIN Products P
 on OI.Products_Id = P.ID
GROUP BY OI.Order_ID

相关示例数据的预期输出:

ORDER_ID Total_price
1        22.50

这就是我询问示例输出的原因。我不确定您要返回哪些列,所以我只返回了每个订单的总和。

现在这是怎么说的 为每个订单返回一行,显示订单 ID 和 total_price,它是(订购数量 * 该订单所有行的价格)的总和。

这是通过查看订单项目表来完成的(在后面的 tic 中,因为我不确定 mySQL 是否喜欢名称中的破折号 (-)。)。根据订购商品表和价格表之间的 product_Id 连接这些表。然后按订购项目对结果进行分组,允许总和聚合订单的所有行乘以订单该行上的项目价格。

关于php - MySQL总结关系数据库中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25208256/

相关文章:

php - 从具有总成本的两个表中选择全部

php - 图像数组在 PHP/HTML 中重复/复制

mysql - 这段消除排列的SQL代码如何改进?

php - 什么时候应该使用 curl_close()?

php - 网站断断续续出现 'No data received' 错误代码 : ERR_EMPTY_RESPONSE

php - curl "Peer' s 公钥无效。”无法加载客户端 key : -8178 (SEC_ERROR_BAD_KEY)

sql - 基于范围的窗口框架只能有 1 个排序键

javascript - Symfony2 Bundles 资源文件丢失

mysql - 无法运行 MySQL - 错误 1045 (28000)

java - 最佳实践 : best database naming convention for JPA?