我已经在这方面苦苦挣扎了很长一段时间,似乎无法找到正确的陈述(即使在谷歌的帮助下!)
我想做的是......(我真的希望这是有道理的)
从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
答案 0 :(得分: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
答案 1 :(得分:1)
您希望在mysql中使用更新进行连接。语法是:
update table1 join
table2
on table1.value1 = table2.value1
set table1.value2 = table2.value2;