0

私はかなり長い間これに苦労してきましたが、正しいステートメントを見つけることができないようです (Google の助けを借りても!)

私がやろうとしていることは... (そして、これが理にかなっていることを本当に願っています)

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 を使用している場合 (質問にもそのタグがあるようです)、「syntax error 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 に答える