2017-01-27 6 views
0

У меня есть таблица Перемещение данных из одной колонки в другую в MySQL

col-PK col2 col3 col4 
1  a  aa  aaa 
2  b  bb  bbb 

И таблица B

col-PK colB temp 
1  a   
2  b 

мне нужно заполнить temp колонку с col3 когда col2 = colB

My Attmept

Update B Set temp = (Select A.col3 from A join B where A.col2 = B.colB) 

, но это не работает должным образом. Я получаю одинаковое значение для всех строк в temp.

Неправильный выход:

col-PK colB temp 
    1  a aa   
    2  b aa // it should be `bb` 

ответ

1
UPDATE B Set temp = (SELECT col3 from A where A.col2 = B.colB) 
+0

вы можете любезно объяснить, что ошибку я сделал. Я почти понял это. Но что я пропустил. – Unbreakable

+0

Я думаю, что если вам нужно использовать 'join', проверьте ответ @ scaisEdge, вы должны сначала получить результат объединения, чем' update', то, что вы сделали, это попытаться обновить столбец из результата 'join', который не является к одной связи – LONG

+0

вы должны убедиться, что значение return из '()' равно одному сопоставлению – LONG

2

Вы можете использовать uoadte с присоединиться

Update B 
JOIN A on A.col2 = B.colB 
Set B.temp = A.col3 
Смежные вопросы