admin

用另一列中的值更新列

sql

我有一个这样的表:

create table foo ( a number, b number )

我想使用另一个表中的值更新来自a的所有列

create table bar ( x number, y number )

因此,如果这将是一种程序编程语言,我将:

 foreach foo_item in foo 
     foreach bar_item in bar 
         if( foo_item.b == bar_item.y ) 
             foo_item.a = bar_item.x 
         end
     end
 end

我试过了

update foo 
set a = ( select distinct( x ) from bar where bar.y = foo.b )

但它挂起了…。 我不确定如何做这样的事情(甚至不知道谷歌该怎么做)

谢谢

编辑 对不起,我不好。它不会挂起,但是会尝试设置va null值,并且我有一个约束(无法删除)

感谢你目前的帮助


阅读 75

收藏
2021-07-01

共1个答案

admin

更新foo set b =(从bar选择bar.y = foo.b的distinct(x))

可能由于性能原因而挂起,但应该可以工作。如果没有bar.y等于foo.b,请仔细检查会发生什么。如果将b设置为null是否可以?

2021-07-01