我有三张桌子:
t1.columns: a,c
t2.columns: a,b
t3.columns: b,c,d
现在我想要的是用 t3.d 更新 t1.c。但我不能只使用 t1.c = t3.c 从 t3 更新 t1,我还必须通过 t3.b = t2.b 和 t1.a = t2.a。
我试过这样的事情:
UPDATE table1 t1
SET t1.c = (select t3.d
from table2 t2, table3 t3
where t2.b = t3.b and t1.a = t2.a)
WHERE EXISTS ( SELECT 1 FROM table2 t2, table3 t3 WHERE t1.c = t3.c and t1.a = t2.a);
此代码生成错误消息:ORA-01427:单行子查询返回多于一行