You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MariaDB关联更新order与order_product表时语法报错求助

修正MariaDB多表更新SQL语法错误

错误原因

你的SQL使用了类似SQL Server的UPDATE ... FROM ... JOIN语法,但MariaDB/MySQL不支持这种写法,同时order是SQL保留关键字,直接使用会触发语法错误。

修正后的SQL语句

UPDATE `order` o
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;

关键修改点

  • 改用MariaDB支持的UPDATE ... JOIN ...语法结构,将关联表直接通过JOIN连接到UPDATE子句后
  • 用反引号`包裹order表名,避免保留关键字冲突
  • 使用表别名(o代表order,op代表order_product)简化语句,提升可读性
  • 由于WHERE条件依赖order表的字段,使用INNER JOIN更合适(原LEFT JOIN会包含无匹配的order_product记录,但WHERE条件会过滤掉这些记录,INNER JOIN逻辑更准确)

内容的提问来源于stack exchange,提问作者Mehdi Gh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 08:00:53