Mysql 通过联表查询更新数据

Mysql Update Select

前言

使用 mysql 更新表数据的时候,可以直接 将查询出来的数据更新过去。

使用

核心思想是 使用 inner join 连接另外一张表,这里说的另外一张表并不一定是一张独立的表,也可以是你通过其他方式构造出来的。

大致的语法如下:

update 待更新表 a 
INNER JOIN 关联表 b 
on a.id=b.id
set a.name=b.name ,a.age=b.age
where b.age > 30
​

这里的关联表 b 可以通过 left join 或者其他任何形式自己构建出来。

来看个实例:

update tbl_third_user_org a
INNER JOIN (
    select uo.id,u.user_id from tbl_third_user_org as uo
    left join tbl_third_user as u on uo.user_code = u.user_code 
) b
on a.id = b.id 
set a.user_id = b.user_id
​

这里 inner join 的 表 b 就是我们自己构造出来的。


Mysql 通过联表查询更新数据
https://shikai.info/archives/mysql-update-select
作者
石 凯
发布于
2023年07月30日
许可协议