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