首页 >数据库 >mysql教程 >当 MySQL 多连接语句中的表不是第一个表时,如何更新它?

当 MySQL 多连接语句中的表不是第一个表时,如何更新它?

DDD
DDD原创
2024-12-11 07:38:11512浏览

How to Update a Table in a MySQL Multi-Join Statement When It's Not the First Table?

在 MySQL 中更新多连接语句中的表

当您想要更新 MySQL 中的连接表时,更新连接表可能会很困难。更新不是连接链中的第一个。本文探讨如何使用 MySQL 的非常规 UPDATE 语法来克服这个障碍。

多表更新的非常规语法

与 Microsoft SQL Server 的语法相反,MySQL 的 UPDATE with JOIN语句不需要在 FROM 子句中指定要更新的表。相反,它隐式使用 SET 子句中指定的表。

示例

提供的示例尝试根据 tableA 和 tableC 中的值更新 tableB:

UPDATE tableB
FROM tableA
JOIN tableB ON a.a_id = b.a_id
JOIN tableC ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
AND c.val > 10;

钥匙要点

  • SET 子句指定 tableB 为要更新的表。
  • FROM 子句被省略,因为它在 MySQL 的多连接更新语法中不是必需的。
  • 标准 SQL 不支持 UPDATE with JOIN,MySQL 和 Microsoft SQL Server 已经实现了自己对标准的扩展

通过遵循 MySQL 独特的语法,即使目标表不是连接链中的第一个表,用户也可以成功更新连接表。

以上是当 MySQL 多连接语句中的表不是第一个表时,如何更新它?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn