执行关联表UPDATE SQL语句时触发#1064语法错误,请求排查问题
问题分析与解决方法
你的SQL报错是因为MariaDB/MySQL不支持UPDATE ... FROM这种语法格式——该写法属于PostgreSQL、SQL Server等数据库的语法规范,不符合MariaDB的SQL语法要求,因此触发1064语法错误。
针对MariaDB,正确的多表关联更新写法需要使用JOIN子句,以下是两种可行的修正方案:
方案1:直接关联表更新
UPDATE psu6_orders INNER JOIN psu6_orders2 ON psu6_orders.id_order = psu6_orders2.id_order SET psu6_orders.id_customer = psu6_orders2.id_customer;
方案2:使用表别名简化语句
UPDATE psu6_orders o INNER JOIN psu6_orders2 o2 ON o.id_order = o2.id_order SET o.id_customer = o2.id_customer;
两种写法本质一致,都是通过INNER JOIN关联两张表,匹配id_order字段后更新id_customer的值。
内容的提问来源于stack exchange,提问作者Revol Begins
相关产品推荐
相关产品推荐

