update a hf
set hf.pk_id2 = hl.pk_id
where hl.project_id = '002'
and hl.show_no in
(select hf.show_no
from a hf
where hf.project_id = '00c')
and hl.estimate_name in
(select hf.estimate_name
from a hf
where hf.project_id = '00c')
数据在一张表了,存的两颗树,当树的节点,名称相同时,把第一棵树的pk存到第二颗树的pk2中去。
hl和hf都是给a表起的别名。大概就是循环更新的意思,找了半天资料还是写不出来,希望大神们帮帮忙,谢谢了
update a2 set a2.pk2 = a1.pk where a1.节点 = a2.节点 and a1.名称 = a2.名称
(select * from a where project_id = 1) a1
(select * from a where project_id = 2) a2
是这个意思吗?
hl是表名还是别名?
1:hl是什么
2:update a hf
set hf.pk_id2 = hl.pk_id
where hl.project_id = '002'
就这一段来说,hl.pk_id有可能是有多个值的,就算你加条件,oracle也会认为他有多种可能性,将多个值 赋给一个字段,会报错