2017-01-28 17 views
1

Table1MySQL: вычислить и обновить строку с другими значениями строк?

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

Здравствуйте все,

В основном у меня есть таблица так же, как выше. Im пытается ОБНОВИТЬ значение X и Y ID = 2 с результатом деления значений других колонок.

Я попытался запустить этот запрос без особого успеха,

"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; 

Подобная логика может быть достигнута с помощью подзапросов, но код немного хаотичный.