您需要t1使用来自 的值更新表值t2。两个表都有id并且只需要两个表中的那些。
我尝试使用以下查询来做到这一点:
update t1 set (t1.n_dog) = (
select t2.n_dog
from t2
join t1 on t1.idblank=t2.idblank);
我得到错误:
ORA-01427: 单行子查询返回多于一行
搜索这个网站,我发现了一个类似的主题。
并且有一个解决方案:
UPDATE DISHES d SET (d.price, d.calories) = ( SELECT dc.price, dc.calories
FROM DISH_PRICE_CALORIES dc
WHERE d.id = dc.dish_id );
在我看来,情况相似,但只有我有一个专栏。
为什么我会收到此错误?
试试这样:
t1.n_dog如果它有效,那么如果两个表之间没有匹配,则决定该列应该得到什么。因此,如上所述,它将获得 的值NULL,如果这不适合您,请参见下文。从另一个表更新的更灵活的方法是在以下可重现的示例中。3 个条目已经具有所需的值,剩下 6 个条目: