我想更新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
的Test2:
id => 1
where => 1
add => 1
id => 2
where => 1
add => 2
此查询的结果是test1
。value
= 1,而不是3.这在SQL中是否可行?
抱歉我的英文。
答案 0 :(得分:0)
UPDATE test1
SET test1.value = test1.value + test2.add
FROM test1 INNER JOIN test2 ON (test1.ID = test2.ID)
GO
我相信这就是你想要做的。
答案 1 :(得分: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`