使用select语句更新多个记录

时间:2016-03-30 10:59:26

标签: sql oracle select sql-update

我想知道如何使用select语句一起更新多个记录。

我想这样做:

Update table set new_col = (select col1 from tab1, tab2 where tab1.id =tab2.neid)

这里选择子查询返回大约100条记录,对于这100条记录,我想更新我的new_col。

有没有办法完成这项任务?

我尝试使用更新选择,但没有成功。

样品:

表包含大约10条记录,包含3列。 对于一个实例,我想在现有表中再添加一列。

现在我有4列。新添加的列应该从另一个表中获取这10个记录的值。

那我该怎么办呢?

谢谢

1 个答案:

答案 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.??
                 );

您的问题没有指定如何识别外部表中与子查询中的每一行匹配的行。因此,???