0

我想更新test1表,我从test2表中获取数据。我正在尝试使用 JOIN 但它不起作用。

我的查询:

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

我有两条记录test2,一条记录在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

您需要加入一个子查询,该查询获取按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 回答
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 回答