0

テーブルを更新したいのですが、テーブルtest1からデータを取得しtest2ます。JOIN を使用しようとしていますが、機能していません。

私のクエリ:

UPDATE `test1` INNER JOIN `test2` ON `test2`.`where`=`test1`.`id` SET `test1`.`value`=`test1`.`value`+`test2`.`add`

に 2 つのレコードtest2と に 1 つのレコードがありtest1ます。

テスト 1:

id => 1
value => 0

テスト 2:

id => 1
where => 1
add => 1

id => 2
where => 1
add => 2

このクエリの結果は ですtest1value=1、3 ではありません。これは SQL で可能ですか?

私の英語でごめんなさい。

4

2 に答える 2

0
UPDATE test1 
SET test1.value = test1.value + test2.add
FROM test1 INNER JOIN test2 ON (test1.ID = test2.ID)
GO

これがあなたがやろうとしていることだと思います。

于 2013-10-31T15:40:35.047 に答える
0

add列でグループ化された列の合計を取得するサブクエリに参加する必要がありwhereます。これを試して

UPDATE `test1` t1
INNER JOIN (
  SELECT `where`, SUM(`add`) as `add` FROM test2 GROUP BY `where`
) as t2
ON t1.id = t2.`where`
SET t1.`value` = t2.`add`

http://sqlfiddle.com/#!2/2e07e/1

于 2013-10-31T15:51:34.157 に答える