MySQL - как вставить значения из одной таблицы в другую при сопоставлении строк? - PullRequest
0 голосов
/ 30 апреля 2011

MySQL noob здесь; сначала огляделся, но не смог найти ответ на этот вопрос.

Итак, у меня есть две таблицы в MySQL, одна (Table1), которая состоит из одного столбца, содержащего уникальный список имен (Col1), и другой, содержащей соответствующие двоичные значения (Col2). Вторая таблица (Table2) содержит список повторяющихся имен с пустым столбцом, ожидающих заполнения двоичными значениями из первой таблицы. Что я хочу сделать, так это для каждого экземпляра повторяющегося имени в таблице 2 вставить двоичное значение из Col2, связанное с соответствующим уникальным именем в таблице 1.

Я знаю, как это сделать в Excel - вы просто помещаете следующую инструкцию VLOOKUP рядом с каждой строкой, содержащей повторяющееся имя. В следующем фрагменте кода A2 является повторяющимся именем, уникальные имена содержатся в столбце B, а двоичные значения содержатся в столбце C.

=VLOOKUP(A2,$B$2:$C$106095,2,FALSE)

Но я не могу понять, как воспроизвести этот эффект в MySQL. Я не могу использовать Excel, потому что там слишком много данных. У кого-нибудь есть идеи? Заранее спасибо!

1 Ответ

1 голос
/ 30 апреля 2011

Я думаю, что вы хотите что-то вроде этого (я не знаю, что делает заявление Excel):

UPDATE table2 JOIN table1 ON table1.col1 = table2.col1
SET table2.col2 = table2.col2
WHERE table2.col2 IS NULL

Это обновит каждую строку table2, в которой col2 пусто, и найдет соответствующую строку в table1 на основе соответствующих col1 столбцов.

Кстати, у тебя есть причина для этого? Почему бы просто не объединить обе таблицы при выборе данных? Например:

SELECT table2.col1, table1.col2
FROM table2 JOIN table1 ON table1.col1 = table2.col1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...