首页 > 数据库 > mysql教程 > 如何使用 LEFT JOIN 更新多个 MySQL 表?

如何使用 LEFT JOIN 更新多个 MySQL 表?

Susan Sarandon
发布: 2024-12-15 13:33:26
原创
946 人浏览过

How to Update Multiple MySQL Tables Using a LEFT JOIN?

在 MySQL 中通过 LEFT JOIN 更新多个表

问题:

如何更新跨多个表使用 LEFT JOIN 的表中的字段?考虑一个场景,您希望通过以下 LEFT JOIN 查询更新结果集中的所有行:

SELECT T1.* FROM T1 LEFT JOIN T2 ON T1.id = T2.id WHERE T2.id IS NULL
登录后复制

答案:

MySQL 允许您执行 UPDATE使用 SELECT 语句中支持的任何连接类型的语句,包括 LEFT JOIN。正确的语法如下:

UPDATE  t1
LEFT JOIN
        t2
ON      t2.id = t1.id
SET     t1.col1 = newvalue
WHERE   t2.id IS NULL
登录后复制

请注意,为了在 SELECT 语句中获得更好的性能,请考虑使用 NOT IN / NOT EXISTS 语法:

SELECT  t1.*
FROM    t1
WHERE   t1.id NOT IN
        (
        SELECT  id
        FROM    t2
        )
登录后复制

有关性能详细信息,请参阅本文:查找不完整的订单:LEFT JOIN 与 NOT IN 的性能比较。

但是,MySQL 不支持在 a 中使用目标表UPDATE 语句中的子查询。因此,您必须依赖效率较低的 LEFT JOIN 语法来进行涉及多个表的更新。

以上是如何使用 LEFT JOIN 更新多个 MySQL 表?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板