2012-12-07 47 views
2

好吧,所以我需要做的是,在第一个表中取所有具有特定名称的数据的总和。我可以在MySQL中组合2个表并更新一个字段吗?

SELECT sum(DKP_Change) FROM 'Attendance' WHERE Name='harrian' 

然后在不同的表,我需要与上表

SELECT Total_DKP FROM `Characters` WHERE Name='harrian' 

我尝试以下解决方案和其他几个人的总和更新Total_DKP,但我没有得到任何工作成果

SELECT Total_DKP FROM `Characters` WHERE Name='harrian' 
set Total_DKP = (SELECT sum(DKP_Change) FROM 'Attendance' WHERE Name='harrian') 
+5

你应该使用UPDATE命令然后:)但是你是否想要从第一个表总共更改第二个表的值?或者你只是想选择数据? – bonCodigo

+0

将第二个表值更改为第一个表数据的总数 – Tyler

回答

1

要改变数据成一排,用UPDATE声明:

UPDATE Characters AS c 
SET c.Total_DKP = (SELECT SUM(a.DKP_Change) 
        FROM Attendance AS a 
        WHERE a.Name = 'harrian' 
       ) 
WHERE c.Name = 'harrian' ; 
+0

谢谢!现在,如果我需要从第三个数据库中减去一个数字,我该如何做到这一点? – Tyler

+0

如果这个问题已经得到解答,本网站的惯例是接受最能帮助你的答案(如果你想要其他有用的答案)。然后发表一个新的问题来描述您所拥有的不同或更复杂的问题。 –

0
UPDATE `Characters` 
SET Total_DKP = (SELECT SUM(DKP_Change) FROM `Attendance` WHERE Name='harrian') 
+0

这将更新“Characters”表中的** All **行。 –

+0

第二个数据库中有多个条目,我不想将所有的Total_DKP值设置为相同的 – Tyler

0

请尝试以下操作。

update t1 set t1.secondcolumn = 
     (SELECT sum(blah) as blahsum 
      FROM t1 b 
     where b.name = 'harran' 
     )    
    WHERE t1.name = 'harran' 
; 
相关问题