mysql 使用JOIN的SQL UPDATE 2表

3lxsmp7m  于 2022-12-03  发布在  Mysql
关注(0)|答案(1)|浏览(127)

我想同时更新两个表,因为连接和更新条件都在第一个表中,而第二个表中只有金额等简单信息

UPDATE
order,
order_product
SET
order.total = order.total*0.00001,
order_product.price = order_product.price*0.00001,
order_product.total = order_product.total*0.00001
FROM
order_product
LEFT JOIN
order ON order_product.order_id = order.order_id
WHERE
order.currency_code = "USD"
AND
order.currency_value = 0.00001000

我一直收到此错误
SQL语法中有错误;查看与您的MariaDB服务器版本对应的手册,了解在第5行“FROM order_product LEFT JOIN order ON order_id...”附近使用的正确语法

oymdgrw7

oymdgrw71#

您的语法不适用于MySQL,看起来像是取自其他方言。对于MySQL更新联接,请使用显式联接,如下所示:

UPDATE order o
INNER JOIN order_product op
    ON op.order_id = o.order_id
SET
    o.total = o.total*0.00001,
    op.price = op.price*0.00001,
    op.total = op.total*0.00001
WHERE
    o.currency_code = 'USD' AND
    o.currency_value = 0.00001000;

相关问题