mysql - 使用适用于 MySQL 和 SQL Server 的连接进行更新
问题描述
我需要这个更新/加入查询才能在 MySQL 和 SQL Server 上工作。我似乎无法弄清楚。我不确定这是否可能。这是它的样子
update table1 a
inner join table2 b on a.id = b.id
set a.name = b.name
任何人都可以帮助我改变它,使其适用于 MySQL 和 SQL Sserver 吗?谢谢!
解决方案
使用相关子查询而不是join
:
update table1 a
set a.name = (select b.name from table2 b where a.id = b.id)
where exists (select 1 from table2 b where a.id = b.id);
where
如果您知道两个表中的 id 匹配,则不需要外部子句。
推荐阅读
- javascript - 在 GCP App Engine 中使用 NodeJs 和 Babel 的问题
- node.js - 如何为嵌套数据设计猫鼬模式设计
- excel - 将数据从一个工作簿复制到另一个工作簿的最后一行
- python - 何时使用“For Loop vs List Comprehension”创建新列表?
- ios - 有什么方法可以在没有开发人员帐户的情况下共享我的 iPhone 应用程序进行测试?
- bash - 即使在 RedHat 中安装 vim 后我也无法使用 vi
- html - 将段落置于第一段之下
- eclipse - 无法安装黄瓜eclipse插件
- xml - 如何在 Postgres 11 和 Postgres 9.1.2 中解析 XML
- java - 确认输入的问题