2017-01-28 86 views
1

表1MySQL:計算並更新一行與其他行的值?

ID X  Y 
1  0.5 0.5  
2  ?  ? 
3  5  5 

您好所有,

基本上我有一個表,就像上面的一個。我試圖更新ID值爲2的X和Y的值,其結果是除其他列的值。

我想沒有多少成功運行該查詢,

"UPDATE Table1 SET X = X IN (WHERE ID = 1)/Y IN (WHERE ID = 3) WHERE ID = 2" 

,我想會是

ID  X   Y 
1  0.5  0.6  
2  (0.5/6) (0.6/5) 
3  5   6 

回答

1

在許多數據庫中,你可以使用一個JOIN結果。在MySQL中的語法,這看起來像:

UPDATE Table1 t1 JOIN 
     Table1 t1_1 
     ON t1_1.ID = 1 JOIN 
     Table1 t1_3 
     ON t1_3.ID = 3 
    SET t1.X = t1_1.X/t1_3.X, 
     t1.Y = t1_3.X/t1_3.Y 
    WHERE t1.ID = 2; 

類似的邏輯可以使用子查詢來完成,但代碼是有點混亂。