我想知道如何使用select语句一起更新多个记录。
我想这样做:
Update table set new_col = (select col1 from tab1, tab2 where tab1.id =tab2.neid)
这里选择子查询返回大约100条记录,对于这100条记录,我想更新我的new_col。
有没有办法完成这项任务?
我尝试使用更新选择,但没有成功。
样品:
表包含大约10条记录,包含3列。 对于一个实例,我想在现有表中再添加一列。
现在我有4列。新添加的列应该从另一个表中获取这10个记录的值。
那我该怎么办呢?
谢谢
答案 0 :(得分:0)
在Oracle中,您可以使用相关子查询来执行此操作。您需要一些列来确定要更新的行:
Update table t
set new_col = (select col1
from tab1 join
tab2
on tab1.id = tab2.neid
where tab?.?? = t.??
)
where exists (select 1
from tab1 join
tab2
on tab1.id = tab2.neid
where tab?.?? = t.??
);
您的问题没有指定如何识别外部表中与子查询中的每一行匹配的行。因此,?
和??
。