0

我已经为此苦苦挣扎了很长一段时间,似乎找不到正确的说法(即使在谷歌的帮助下!)

我想做的是......(我真的希望这是有道理的)

从 table2 中的 value1 查找 table1 中的 value1(以匹配)然后从第一个值匹配的 table2 value2 更新 table1 中的 value2

到目前为止我有..

inner join table2 on table1.value1
inner join table2 on table1.value2

update table1

set value2=table2.value2
where value1=table2.value1
4

2 回答 2

1

听起来这就是你所追求的:

update table1
  join table2
    on table1.value1 = table2.value1
set table1.value2 = table2.value2;

演示:http ://sqlfiddle.com/#!2/8982d/1

更新:

如果您使用的是 SQL Server(我看到您在问题中也有该标记),那么您收到“语法错误 newar JOIN”错误消息是正常的。

这是因为在 SQL Server 中,语法有点不同:

update table1
    set table1.value2 = table2.value2
from table1
join table2
  on table1.value1 = table2.value1

演示:http ://sqlfiddle.com/#!3/4139c/1

于 2013-09-05T13:11:19.390 回答
1

您想要加入 mysql 中的更新。语法是:

update table1 join
       table2
       on table1.value1 = table2.value1
    set table1.value2 = table2.value2;
于 2013-09-05T13:11:51.707 回答