ORACLE UPDATE 多表关联的update语句


多表关联更新,非常实用的SQL实现

update tr_plan_2_u a
 set hash_value=( select hash_value from tr_plan_2 where rowid='AAAbYGAAEAAEIpDAAB') 
where exists (select 1 from tr_plan_2 b where 
 a.p_year=b.p_year and a.p_month=b.p_month and a.erp_id=b.erp_id
and b.rowid='AAAbYGAAEAAEIpDAAB') 

这段代码的好处是采用rowid更新子表,而不直接用子表的多字段主键,简化了参数量。

还可以多字段更新,下面示例来自 https://blog.csdn.net/hgffhh/article/details/84192260

   update customers a  
   set    (city_name,customer_type)=(select b.city_name,b.customer_type 
                                     from   tmp_cust_city b 
                                     where  b.customer_id=a.customer_id)
   where  exists (select 1 
                  from   tmp_cust_city b
                  where  b.customer_id=a.customer_id
                 )

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM