我知道update子句不适用于Oracle中的连接。
update table1 Pr
set code = (select t2.class_attr_value from table2 t2
where class_attr_name = 'sample' and Pr.epcclass_id = t2.epcclass_id)
如果有人可以帮我修改我的查询以便我没有得到SQL Command错误,那么我会感激不尽。
答案 0 :(得分:0)
试试这个:
UPDATE table1 Pr INNER JOIN table2 t2
ON t2.class_attr_name = 'sample' AND Pr.epcclass_id = t2.epcclass_id
SET Pr.code = t2.class_attr_value
答案 1 :(得分:0)
您的查询对我来说似乎没关系,我刚刚添加了表别名。您的查询将更新table1中的所有记录。你得到什么错误......?
建议,
a)除非您想要更新所有记录,否则在查询中添加where子句以避免更新所有记录......
b)如果你得到(ORA-01427:单行子查询返回多行),则意味着核心子查询(在括号内)缺少一些条件,使其每个epcclass_id只获取1行。
update table1 Pr
set Pr.code = (select t2.class_attr_value
from table2 t2
where t2.class_attr_name = 'sample'
and t2.epclass_id = Pr.epcclass_id
);