2017-01-28 3 views
1

表1MySQL:他の行の値を持つ行を計算して更新しますか?

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

こんにちはすべて、

基本的に私はちょうど上のようなテーブルがあります。 ID = 2のXとYの値を他の列の値の除算の結果で更新しようとしています。

私は私が望む結果は多くのデータベースで

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

答えて

1

だろう、あなたはJOINを使用することができます

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

、多くの成功なしでこのクエリを実行してみました。 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; 

サブクエリを使用して同様のロジックを実行できますが、コードは少し複雑です。

関連する問題