サーバー側のループなどを実行しないと、1つのクエリに完全に適合できないモンスター更新クエリが少しあります。
他の2つのテーブルの値を使用して、マスターアカウントテーブルを更新したいと思います。マスターアカウントには、accountID、areaID、stockID、amountの4つの列があります。最初の3列が主キーです。
詳細を更新したい2つのテーブルはほぼ同じです。1つは着信注文で、もう1つは発信注文です。どちらにもorderID、stockID、amountの列が含まれています。主キーはorderIDとstockIDです。
別のテーブルオーダーがあり、マスターアカウントテーブルを更新するために参照する必要があるオーダーのareaIDとaccountIDがあります。これまでのところ、必要な詳細を取得するselect関数を取得できますが、それをupdateステートメントに転送する方法がわかりません。
SELECT a.*,o.orderID, SUM(io.amount) as in,SUM(oo.amount) as out
FROM account_stock AS a
INNER JOIN orders AS o ON o.accountID = a.accountID AND o.areaID = a.areaID
LEFT JOIN incoming_orders AS io ON io.stockID = a.stockID AND io.orderID = o.orderID
LEFT JOIN outgoing_orders AS oo ON oo.stockID = a.stockID AND oo.orderID = o.orderID
GROUP BY a.stockID,a.accountID,a.areaID
入荷と出庫の合計でaccount_stockファイルを更新する個別の更新クエリを実行できる場合、私は完全に失われます。
私のSQLはあまり一般的ではないことを理解しているので、テーブル構造の変更などの提案は歓迎されます。