多表關聯更新,非常實用的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 )
