如何使用SQL UPDATE语句将target字段值迁移到另一张表
跨表迁移target字段值的SQL实现方案
核心实现逻辑为通过两张表共有的user_id字段做关联匹配,将表1对应行的target值同步到表2的target列,不同数据库的UPDATE语法略有区别,具体写法如下:
- MySQL 版本
-- 请将代码中的表1、表2替换为实际的表名 UPDATE 表2 t2 INNER JOIN 表1 t1 ON t2.user_id = t1.user_id SET t2.target = t1.target;
- PostgreSQL 版本
-- 请将代码中的表1、表2替换为实际的表名 UPDATE 表2 t2 SET target = t1.target FROM 表1 t1 WHERE t2.user_id = t1.user_id;
- SQL Server 版本
-- 请将代码中的表1、表2替换为实际的表名 UPDATE t2 SET t2.target = t1.target FROM 表2 t2 INNER JOIN 表1 t1 ON t2.user_id = t1.user_id;
注意事项
执行更新操作前建议先运行关联查询验证匹配结果是否正确,避免误改数据,验证参考语句:
SELECT t2.user_id, t2.target AS 表2原有target值, t1.target AS 表1待同步target值 FROM 表2 t2 JOIN 表1 t1 ON t2.user_id = t1.user_id;
如果仅需要同步表2中target为空的行,可以在更新语句的WHERE条件中补充t2.target IS NULL的过滤规则即可。
内容的提问来源于stack exchange,提问作者JanLi
相关产品推荐
相关产品推荐

