すべての 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関数ですか?