怎么用关联查询来更新表

【 使用环境 】 测试环境
【 OB or 其他组件 】OB 3.2.7 Oracle 模式 ODC 4.0.2
【 使用版本 】
【问题描述】不清楚如何用关联查询更新表,文档中也没有
https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000945667
自己试了 join 语句不行 :
update picture pic join sys_user usr on pic.update_by = usr.user_id set pic.sys_cd = usr.sys_cd;

update picture pic set pic.sys_cd = usr.sys_cd
from picture pic join sys_user usr on pic.update_by = usr.user_id;

大致上就是 picture 原来没有记录用户系统编码(sys_cd),增加 sys_cd 属性后,希望根据 sys_user 给历史数据的 sys_cd 属性赋值

picture 大致属性(pic_id,pic_name,pic_desc,create_by,update_by) 新增增加 sys_cd 属性
sys_user 大致属性 (user_id,user_name,sys_cd)

【复现路径】问题出现前后相关操作
【附件及日志】

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

试一下这种方式呢
update picture pic
set pic.sys_cd=usr.sys_cd
from picture
inner join sys_user usr
on pic.update_by = usr.user_id;

update picture pic
set pic.sys_cd=(select usr.sys_cd from sys_user usr pic.update_by = usr.user_id);

1 个赞

这个还是会报错,去掉 inner 也报错