工作遇到了两表连接查询的更新,自己写的sql出现了“子查询返回多行的错误”问了公司的人换了个写法
plsql操作oracle
update aml_ds_v4.file_overdue_info up set up.identity_date=(
select il.identity_date from aml_ds_v4.total_customer_detail il where
up.uoc_no=il.uoc and up.total_detail_id=il.id
)
where up.id in (
select oi.id from aml_ds_v4.total_customer_detail td right join aml_ds_v4.file_overdue_info oi on td.uoc_no=oi.uoc_no where
td.identity_date !=ol.identity_date and oi.total_detail_id = td.id and
oi.status=‘0’)
大体的思路就是 先做一个全表更新,用两个表关联的id来更新,更新的时候也通过右连接来限制更新那些数据,uoc为主键,oi.total_detail_id = td.id这两个为关联的id
oracle中,Update加上leift join连接查询更新
最新推荐文章于 2022-12-20 14:48:28 发布