使用select语句更新多行

OP

假设我有以下表格和值:

Table1
------------------------
ID | Value
------------------------
 2 | asdf
 4 | fdsa
 5 | aaaa

Table2
------------------------
ID | Value
------------------------
 2 | bbbb
 4 | bbbb
 5 | bbbb

我想Table2使用Table1它们各自的ID来更新所有值

我知道我可以执行以下操作:

UPDATE Table2
SET Value = t1.Value
FROM Table2 t2
INNER JOIN Table1 t1 on t1.ID = t2.ID

但是,如果Table1并且Table2实际上是带有条件的选择语句,我该怎么办如何修改SQL语句以考虑到这一点?

大卫·法伯

这是通常在Oracle中完成更新查询的方式。Oracle没有UPDATE FROM选择:

UPDATE table2 t2
   SET t2.value = ( SELECT t1.value FROM table1 t1
                     WHERE t1.ID = t2.ID )
 WHERE EXISTS ( SELECT 1 FROM table1 t1
                 WHERE t1.ID = t2.ID );

WHERE EXISTS子句将确保仅table1更新具有相应行in(否则将更新其中的每一行table2;没有相应行的那些行将table1被更新为NULL)。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用case语句更新多行仅更新1行

来自分类Dev

Codeigniter - 使用 Select2 更新多行

来自分类Dev

使用PDO在Select语句中选择多行

来自分类Dev

SQL SERVER如何使用Insert into select语句插入多行

来自分类Dev

根据SELECT语句插入多行

来自分类Dev

使用CASE语句更新SELECT查询

来自分类Dev

使用select语句的SQL更新查询

来自分类Dev

Postgres使用select语句更新重复项

来自分类Dev

查询优化:在一个SQL语句中基于SELECT循环和更新多行

来自分类Dev

使用Python doctest的多行语句

来自分类Dev

使用选择语句插入多行

来自分类Dev

使用PostgreSQL更新多行

来自分类Dev

如何在SQL Server中使用多个CASE语句更新多行?

来自分类Dev

使用一个SQL语句更新表中的多行,每行计算值

来自分类Dev

如何使用select语句中的值更新临时表?

来自分类Dev

在MySQL中使用select和case语句更新

来自分类Dev

使用休眠条件更新多行

来自分类Dev

使用ID列表更新多行

来自分类Dev

使用Yii的updateAll()更新多行

来自分类Dev

使用单个值更新多行

来自分类Dev

在Rails中使用Prepared语句插入多行

来自分类Dev

使用类中的预备语句选择多行

来自分类Dev

如何对else语句使用多行代码?

来自分类Dev

如何使用select获取多行?

来自分类Dev

使用IF语句更新行

来自分类Dev

使用select..where..in和一个连接更新多行

来自分类Dev

我可以使用一个select语句通过FK从2个表中获取多行吗

来自分类Dev

SELECT,JOIN和WHERE!=语句返回太多行

来自分类Dev

如何更新结果来自select语句的表