如何使用选择组在第二个表中更新表作为MySQL中的数据源?

时间:2010-04-29 20:48:30

标签: mysql

我不能在MySQL中这样做

UPDATE tableA, tableB
SET tableA.column1 = SUM(tableB.column2)
WHERE tableA.column3 = tableB.column4
GROUP BY tableB.column4
;

我也不能

UPDATE tableA, 
(
  SELECT SUM(tableB.column2) sumB, tableB.column4
  FROM tableB
  GROUP BY tableB.column4
) t1
SET tableA.column1 = sumB
WHERE tableA.column3 = column4
;

除了它是非法代码之外,我想你可以理解我尝试用上面的查询做什么。他们两个都有同样的意图。

我怎样才能在MySQL中做到这一点?

1 个答案:

答案 0 :(得分:2)

如果您不介意使用子查询,这将是一种方式:

UPDATE tableA
SET column1 = (
    SELECT sum(column2)
    FROM tableB
    WHERE tableA.coumn3 = tableB.column4);