You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Table1的col2值更新到Table2对应col2(col1非主键)

问题修正方案

原代码的核心错误

  1. 更新对象搞反:你写的SQL是更新Table1,但需求是更新Table2
  2. 关联条件错误:用t1.col2 = t2.col2匹配,但Table2初始col2全是NULL,根本无法正确关联;正确的匹配逻辑应该是基于col1相等,也就是t1.col1 = t2.col1
  3. 字段名错误:SQL里的Table1_id是不存在的字段,属于笔误
  4. 方法误用:pd.read_sql_query是用来执行查询并返回DataFrame的,执行更新操作应该用数据库连接的execute方法

修正后的代码

根据你使用的数据库类型,选择对应的SQL语句:

适用于MySQL的写法

# 执行更新操作
connection.execute("""
UPDATE Table2 t2
INNER JOIN Table1 t1 ON t1.col1 = t2.col1
SET t2.col2 = t1.col2
""")
# 提交事务(如果连接没有自动提交的话)
connection.commit()

适用于SQL Server的写法

connection.execute("""
UPDATE t2
SET t2.col2 = t1.col2
FROM Table2 t2
INNER JOIN Table1 t1 ON t1.col1 = t2.col1
""")
connection.commit()

验证结果

执行后Table2的col2会被正确更新为与Table1中col1匹配的对应值,达到预期输出效果。

内容的提问来源于stack exchange,提问作者mass

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 01:20:32