开发者社区> 问答> 正文

MySQL更新联接表?mysql

我想在具有多个联接的语句中更新表。虽然我知道联接的顺序并不重要(除非您使用的是优化程序提示),但我还是以某种最直观的方式对它们进行了排序。但是,这导致我要更新的表不是我开始使用的表,并且我无法更新它。

我想做的一个虚拟例子是:

UPDATE b FROM tableA a JOIN tableB b ON a.a_id = b.a_id JOIN tableC c ON b.b_id = c.b_id SET b.val = a.val+c.val WHERE a.val > 10 AND c.val > 10; 这里有许多关于使用联接进行更新的帖子,但是它们总是首先更新表。我知道这在SQL Server中是可能的,希望在MySQL中也可能!

展开
收起
保持可爱mmm 2020-05-17 21:17:12 1129 0
1 条回答
写回答
取消 提交回答
  • MySQL中的多表UPDATE语法与Microsoft SQL Server不同。您无需说要更新的表,这在SET子句中是隐式的。

    UPDATE tableA a JOIN tableB b ON a.a_id = b.a_id JOIN tableC c ON b.b_id = c.b_id SET b.val = a.val+c.val WHERE a.val > 10 AND c.val > 10; MySQL的语法中没有FROM子句。

    使用JOIN进行更新不是标准的SQL,并且MySQL和Microsoft SQL Server都实现了自己的想法,作为对标准语法的扩展。来源:stack overflow

    2020-05-17 21:22:45
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像