2012-12-07 51 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' 
; 
相關問題