两个表格之间字段更新的方法
第一种:oracle的方法
merge into emp_bak a using emp b on (a.ename like CONCAT('%',concat(b.ename,'%'))) ----模糊匹配,如果是等值,把like换成= ,CONCAT('%',concat(b.ename,'%')))换成b.ename字段 when matched then update set a.sal=b.sal
merge into emp_bak a using emp b on (a.ename= b.ename) when matched then update set a.sal=b.sal
merge into 想要更新的表 using 提供数据的表 on (想要更新的表.关联字段=提供数据的表.关联字段) when matched then update set 想要更新的表.更新字段=提供数据的表.字段
第二种方法:
update emp_bak a set a.sal =(select b.sal from emp b where a.ename like CONCAT('%',concat(b.ename,'%')))
正则表达式的写法:
update emp_bak a set a.sal =(select b.sal from emp b where regexp_like(a.ename,b.ename))
精准匹配(第二行的where语句是查询是不是存在才更新)
update emp_bak a set a.sal =(select b.sal from emp b where a.ename = b.ename)
where exists (select 1 from emp b where a.ename= b.ename)
update 想要更新的表 set 想要更新 的表.更新字段 =(select 提供数据的表.字段 from 提供数据的表 where 想要更新的表.关联字段=提供数据的表.关联字段)