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

含两个INNER JOIN的MariaDB UPDATE语句报1064错,请求排查

MariaDB UPDATE JOIN语句的语法错误排查

核心问题与错误点

  • 语法结构不符合MariaDB规范:MariaDB/MySQL不支持UPDATE ... SET ... FROM ...这种写法(这是SQL Server的语法),正确的UPDATE JOIN格式是UPDATE 主表 JOIN 关联表1 ON ... JOIN 关联表2 ON ... SET ... WHERE ...。
  • 表名/字段拼写错误:
    • 第二个JOIN的关联条件里,icdcodes.REF_SOLVINGMETHOD应为icdtencodes.REF_SOLVINGMETHOD(前面定义的关联表是icdtencodes,不是icdcodes);
    • solvingmethods.ICD.ROWID存在语法错误,应该是solvingmethods.ICD_ROWID(多了一个不必要的点)。
  • 未定义的表别名:WHERE子句中的d.ICD_FIX_REVISION里的d从未被定义,推测是icdtencodes.ICD_FIX_REVISION的笔误。
  • 括号不匹配:WHERE子句中(solvingmethods.SOLVINGMETHOD LIKE 'R' OR solvingmethods.SOLVINGMETHOD LIKE 'K'缺少闭合括号,导致语法结构断裂。

修正后的语句

UPDATE problems
JOIN icdtencodes ON problems.REF_ICDTENCODE = icdtencodes.ICD_ROWID
JOIN solvingmethods ON icdtencodes.REF_SOLVINGMETHOD = solvingmethods.ICD_ROWID
SET problems.PROBLEM = CONCAT('XX', problems.PROBLEM)
WHERE 
  (solvingmethods.SOLVINGMETHOD LIKE 'R' OR solvingmethods.SOLVINGMETHOD LIKE 'K')
  AND icdtencodes.ICD_FIX_REVISION = '';

(注:LIKE ''等价于='',用等号更高效,若需要模糊匹配可保留LIKE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 15:43:17