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

如何编写SQL通过关联ID查询关联表数据并批量更新父表指定字段

关联更新Form表Owner_username字段解决方案

你现有查询的关联条件存在错误:你写的Form.id = U.id不符合你的表结构关联逻辑,正确的关联条件应该是Form.Owner_id = User.User_id。

不同数据库的更新语句

不需要手动遍历行,直接执行对应数据库的关联UPDATE语句即可完成全量字段填充:

MySQL

UPDATE Form f
LEFT JOIN User u ON f.Owner_id = u.User_id
SET f.Owner_username = u.username;

PostgreSQL

UPDATE Form f
SET Owner_username = u.username
FROM "User" u
WHERE f.Owner_id = u.User_id;

SQL Server

UPDATE f
SET f.Owner_username = u.username
FROM Form f
LEFT JOIN "User" u ON f.Owner_id = u.User_id;

注意事项

  • 执行更新前建议先运行查询验证匹配结果是否正确,避免关联条件写错导致数据异常:
    SELECT f.Form_id, f.Owner_id, u.username, f.Owner_username 
    FROM Form f 
    LEFT JOIN User u ON f.Owner_id = u.User_id;
    
  • 数据量较大时建议先备份Form表再执行更新操作。
  • 该操作完成后,Form表存储的Owner_username为当前时间点的用户账号快照,后续User表的用户信息变更不会影响历史Form数据,完全匹配你需要保留特定时间点用户信息的业务需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:06:05