基于多列组合匹配更新表字段的SQL脚本解决方案咨询
解决方案:基于多列关联更新Table A的Name字段
当然有啦!这种基于多列组合匹配的更新需求,用关联查询的方式就能轻松实现,不同数据库的语法略有差异,我给你整理了几种常见数据库的实现脚本:
MySQL 版本
UPDATE TableA a JOIN TableB b ON a.NUM_1 = b.NUM_1 AND a.NUM_2 = b.NUM_2 AND a.NUM_3 = b.NUM_3 SET a.Name = b.Name;
SQL Server 版本
UPDATE a SET a.Name = b.Name FROM TableA a INNER JOIN TableB b ON a.NUM_1 = b.NUM_1 AND a.NUM_2 = b.NUM_2 AND a.NUM_3 = b.NUM_3;
PostgreSQL 版本
UPDATE TableA a SET Name = b.Name FROM TableB b WHERE a.NUM_1 = b.NUM_1 AND a.NUM_2 = b.NUM_2 AND a.NUM_3 = b.NUM_3;
额外提示
- 以上脚本都使用了内连接(INNER JOIN),只会更新那些在Table B中存在完全匹配(NUM_1、NUM_2、NUM_3都一致)的Table A行,避免误更新无对应匹配的数据。
- 如果你想先确认哪些行会被更新,可以先运行对应的查询语句验证:
-- 以MySQL为例,其他数据库只需调整JOIN语法即可 SELECT a.*, b.Name AS 即将更新的Name值 FROM TableA a JOIN TableB b ON a.NUM_1 = b.NUM_1 AND a.NUM_2 = b.NUM_2 AND a.NUM_3 = b.NUM_3;
内容的提问来源于stack exchange,提问作者user3375647
相关产品推荐
相关产品推荐

