2014-03-07 13 views
0

У меня есть таблицаA, которая содержит 40 миллионов записей. Он имеет такую ​​структуруОбновление нескольких столбцов в одной таблице на основе значений в другой таблице в mysql

Id A B C 
1 N O 10 
1 N O 20 
2 B G 15 
2 B G 25 
3 E U 50 
3 E U 60 

мне нужно изменить значение в столбце А и В в TableA на основе значений в TableB (где идентификатор является уникальным). Таблица B выглядит следующим образом

Id A B 
1 V M 
2 Q W 
3 E U 

Таким образом, в конечном итоге с результатом для таблицы А,

Id A B C 
1 V M 10 
1 V M 20 
2 Q W 15 
2 Q W 25 
3 E U 50 
3 E U 60 

Так как Id = 3 таких же, как в таблице А и Б. предпочел бы избежать, чтобы написать от В к А для этих записей, думая, что это будет более эффективно?

Я думал, что вдоль этих линий

Но не уверен, когда мне нужно обновить несколько столбцов в одной и той же стадии, а также с точки зрения только обновления, если данные действительно отличается от TABLEA и TableB.

+0

benka, извините, я испортил эти таблицы. Спасибо за редактирование. Как вы делаете таблицы? – Alexander

ответ

1

Вы можете использовать многотабличные UPDATE синтаксис для объединения таблиц:

UPDATE tableA JOIN tableB USING (Id) 
SET tableA.A = tableB.A, 
     tableA.B = tableB.B 

Посмотри на sqlfiddle.

0
Update A a 
inner join B b on a.id = b.id 
set a.A = b.A, 
    a.B = b.B 
WHERE a.A <> b.A and a.B <> b.B 
Смежные вопросы