首页 > 解决方案 > 使用适用于 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 吗?谢谢!

标签: mysqlsqlsql-serverjoin

解决方案


使用相关子查询而不是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 匹配,则不需要外部子句。


推荐阅读