S・シン:
私はテーブルを持っている次のようになります。
Table - order
id purchase_order_item_id amount
1 1324 0.0
2 2435 50.2
3 5643 87.2
4 6475 0.0
Table - purchase_order_item
id item_id
1324 82
2435 83
5643 84
6475 85
Table - item
id amount
82 76.1
83 50.2
84 87.2
85 65.9
今、私は注文表は、量の値0.0を持っているかどうかを確認します。この場合、私は、注文テーブルにテーブル項目(Order-> purchase_order_item->項目)と、更新の量のデータを取得する必要があります。
私はそれを修正するためにrunning.Tryingされていない更新クエリの下に書かれています。
UPDATE order
INNER JOIN purchase_order_item ON purchase_order_item.id = order.purchase_order_item_id
SET
order.amount=
(
SELECT item.amount from item
INNER JOIN purchase_order_item ON purchase_order_item.item_id=item.id
)
where order.amount=0.0;
私は、MySQLのクエリの新しい、正しい更新クエリを記述しようとしています。
GMB:
私は、あなたがしたいと思いupdate ... join
構文を:
update orders o
inner join purchase_order_items poi on poi.id = p.purchas_order_item_id
inner join items i on i.id = poi.item_id
set o.amount = i.amount
where o.amount = 0
サイドノートでは:order
私は、テーブルの名前を変更して、(他のデータベース用など)のMySQLの予約語であるorders
(私はそれが一貫性を保つために、あまりにも他のテーブル名を複数形)。