如何在没有公用键的情况下从另一个表更新一个表中的列

贝拉

这可能是非常基本的,但是我不知道要搜索什么。

Table1:

someid value
1      0
2      0
3      0

Table2:

someid value
9      1
10     2
11     3

我想Table1.valueTable2.value逐行更新值,没有公共键,没有where子句只是table1.value row1 = table2.valuerow1等。像水平联合一样。

因此,表1应该是:

someid value
1      1
2      2
3      3

我尝试:

update table1
set value = table2.value
from table2

但是所有值都来自table2的第一行:

1   1
2   1
3   1
去世

您可以使用row_number()

update table1 
set value = t2.value
from (
  select id, value, row_number() OVER (ORDER BY id) AS n from table1
) t inner join (
  select id, value, row_number() OVER (ORDER BY id) AS n from table2
) t2 on t.n = t2.n
where t.id = table1.id

参见演示
表1的结果:

> id | value
> -: | ----:
>  1 |     1
>  2 |     2
>  3 |     3

如果您确定ID中的IDtable1是连续的且没有间隔并且从1开始,则可以像下面这样简化查询:

update table1 
set value = t2.value
from (
  select id, value, row_number() OVER (ORDER BY id) AS n from table2
) t2 
where t2.n = table1.id

参见演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在没有外键的情况下使用DRF与另一个表建立关系

如何在没有来自另一个表的列的情况下填充 ABAP 表?

如何在没有外键关系的情况下在list_display中显示另一个表中的列?

PL/SQL:如何在没有 for 循环的情况下将表类型中的所有记录插入到另一个表中

如何在不锁定MYSQL 6.2中的表的情况下从另一个表复制数据?

如何在没有密码的情况下SSH另一个VM

如何在没有位置的情况下将一个div与另一个div重叠

如何在一个条件来自另一个表的情况下显示一个表的记录?

如何在不加入mysql的情况下从另一个表中获取数据

如何在SwiftUI中在没有NavigationButton的情况下导航到NavigationView中的另一个视图?

如何从一个表中选择另一个表中没有外键的记录

如何在另一个表ssms中更新具有相同值的列?

如何在没有子查询的情况下对一个新表中的两个查询求和

在没有 For 循环的情况下,使用 Python 中另一个数据帧的条件更新一个数据帧中的列

如何在没有调用对象的情况下使用在另一个类中定义的方法?

如何在导轨中没有另一个的情况下验证元素的存在

如何在不覆盖现有列的情况下将数据复制到另一个表

如何在没有另一个数组列表中的一个元素的情况下创建数组列表

java中如何在没有main方法的情况下从一个类调用toString()方法到另一个类

如何在猫鼬中没有一个对象的情况下更新架构

更新一个表中的主键,而另一个表中的外键

我如何才能做到即使在另一个表中有外键和行的情况下也可以删除呢?

如何在不激活工作表的情况下使用VBA过滤另一个工作表中的范围

在没有返回语句的情况下从另一个操作中调用一个操作

如何在没有完成的情况下转移到另一个活动?

如何在没有预定义的情况下将javascript函数传递给另一个函数?

如何在没有参考的情况下使用另一个项目中的方法

如何在没有箭头键的情况下获取上一个命令

如何从另一个具有最小值的表中更新列?