sql - 使用 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';
解决方案
尝试这个:
UPDATE table1
SET column2 = (SELECT column2 FROM table2 WHERE table2.column1=table1.column1)
FROM table1
WHERE table1.column3 = '27';
推荐阅读
- c++ - 带有 Cmake 的 AvFormat 的链接器错误(未定义的参考)
- twig - 如何强制 symfony 表单只显示和接受正整数?
- flutter - BigQuery http post 请求 Dart/Flutter
- sql-server - 尝试连接到 localhost 时获取网络相关或特定于实例
- php - 代码在 wordpress 上什么也不显示:while (have_posts()) {the_post();?>
- maven - AEM - 保险库 -package filter.xml 查询
- asp.net - IIS 突然服务乱码 UTF-8
- c# - 反编译的 NewLateBinding 值
- javascript - Sequelize user.increment("somethings") 不更新值
- c# - 使用 C# serial.write 拉出任何 Arduino 引脚