首页 > 解决方案 > 使用 Where 从另一个表进行 SQL 更新

问题描述

希望有人能帮忙!

我正在尝试使用来自另一个需要 where 子句的数据更新 SQL Server 表,因此我只更新与该表中特定 ID 相关的行。我创建了以下(以及许多其他变体),但我总是收到此错误:

消息 8624,级别 16,状态 21,过程 tContactPhone_INSUPD,第 66 行 [批处理开始第 13 行]
内部查询处理器错误:查询处理器无法生成查询计划。如需更多信息,请联系客户支持服务。

这是我的更新查询。如果你能帮助我理解我做错了什么,它将帮助我撕掉我留下的那根小头发!

UPDATE table1 
SET column2 = table2.column2
FROM table1 
INNER JOIN table2 ON table1.column1 = table2.column1
WHERE table1.column3 = '27';

此链接中的数据表示例

标签: sqlsql-server

解决方案


尝试这个:

UPDATE table1
   SET column2 = (SELECT column2 FROM table2 WHERE table2.column1=table1.column1)
  FROM table1 
 WHERE table1.column3 = '27';

推荐阅读