更新语句失败,出现 ORA-01427

问题描述 投票:0回答:1

我有两张桌子,见下文。我需要将 table1.sample1 更新为与 table2.sample2 相同,其中 table1.level1=table2.level2。 table2.sample2 是唯一的,但 table1.sample1 可以包含多个具有相同样本的条目。 在此输入图片描述

我尝试的更新给了我

ORA-01427-单行子查询返回多于一行。

UPDATE table1
SET sample1 = 
   (SELECT table2.sample2
    FROM table1, table2
    WHERE table1.level1=table2.level2 and table1.sample1 is null); 
sql oracle sql-update oracle19c
1个回答
0
投票

您想使用相关子查询:

UPDATE table1
SET sample1 = ( SELECT table2.sample2
                FROM   table2
                WHERE  table1.level1=table2.level2)
WHERE sample1 IS NULL;
© www.soinside.com 2019 - 2024. All rights reserved.