如何从其他表列的SUM结果更新列?

时间:2011-05-22 21:38:19

标签: php mysql sql sql-update aggregate-functions

我正在寻找的是使用表2中不同列的SUM的结果来更新表1中的列,例如:

表1

id             | views | 
--------------------
1          |   0  |  
2          |   0  |  

表2

show_id    | views | 
--------------------
1          |   5   |  
1          |   10  |  
1          |   10  |  
2          |   10  |  
2          |   10  |  
2          |   10  |  

现在两个表通过id和show_id连接,那里有相同的值;我想要的是将show_id中的视图总和添加到id,其中show_id = id

所以在结尾表1应该是这样的:

id         | views | 
--------------------
1          |   25  |  
2          |   30  |  

我正在使用MySQL 5.1.30

1 个答案:

答案 0 :(得分:1)

update使用join

UPDATE table1 t1
INNER JOIN table2 t2 ON (t1.id = t2.show_id)
SET t1.views = SUM(t2.views)
GROUP BY t1.id;

请参阅:http://dev.mysql.com/doc/refman/5.0/en/update.html