我有以下架构:
产品:
id: int pk ai
title: string
available: int
left: int
订购:
id: int pk ai
status: int
订单项:
id: int pk ai
order_id: int fk Order.id
product_id: int fk Product.id
amount: int
因此,当购买产品时,会创建一个包含一个或多个订单项目的订单。订单状态指示订单是否已完成。
我需要更新所有产品的“左”字段。它应该通过将 中的所有产品数量相加来计算order_items
,对于具有特定状态(例如 status=2)的订单,并从Products
表中的“可用”值中减去结果(即,如果一个产品有 10 个可用,并且有一个已完成的订单列出该产品的数量=3,结果left
应为 7。)
理想情况下,我想使用一个 SQL 查询来做到这一点。