首页 >数据库 >mysql教程 >如何在MySQL多连接语句中更新表?

如何在MySQL多连接语句中更新表?

Barbara Streisand
Barbara Streisand原创
2024-11-24 11:12:11912浏览

How to Update a Table in a MySQL Multi-Join Statement?

在多连接语句中更新 MySQL 表

在 MySQL 中处理多个连接时,了解更新连接的不同语法表至关重要。与 SQL Server 不同,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;

解决方案:

在 MySQL 中,带有 JOIN 的 UPDATE 语法的工作方式不同。语句中没有显式指定要更新的表;相反,它是从 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;

要点:

  1. MySQL 的 UPDATE with JOIN 语法不需要 FROM 子句。
  2. 要更新的表在SET子句中指定。
  3. 这个非标准语法是 MySQL 特定的扩展。

以上是如何在MySQL多连接语句中更新表?的详细内容。更多信息请关注PHP中文网其他相关文章!

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