0

すべての b.quantityOrdered をループして、d.quantityInStock からその金額を減算する更新クエリが必要です。SQL ループは、何を更新する必要があるかを正確に示しています。

select
d.productCode as prod,
b.quantityOrdered as qtyO,
d.quantityInStock as qtyIS

from orders a
left join orderdetails b on a.orderNumber=b.orderNumber
left join products d on b.productCode=d.productCode
where a.status=6 and a.invoiceStatus=4
order by 1 asc

その結果は次のとおりです。

 prod qtyO qtyIS
 104  19   110
 104  4    110
 104  20   110
 105  10   20
 105  15   20
 105  24   20

さらに良いことに、MySql DB で関数を作成できれば、a.status が 5 から 6 に変化したときに、この更新関数は orderdetails テーブルをループし、quantityinstock で quantityordered を減算します。

それとも、これを行うphp関数ですか?

4

1 に答える 1