MySQL вставка из запроса выбора
У меня есть две таблицы:
ТАБЛИЦА 1
| ColumnA | ColumnB |
-----------------------
| 123 | 1 |
ТАБЛИЦА 2
| ColumnA | ColumnC |
-----------------------
| 123 | 20 |
Я изменил таблицу 2, чтобы добавить новый столбец, чтобы он выглядел следующим образом
НОВАЯ ТАБЛИЦА2
| ColumnA | ColumnC | ColumnB |
----------------------------------
| 123 | 20 | NULL |
Теперь я хочу выбрать значения TABLE1.Column B
и вставить его в TABLE2.Column B
Итак, я написал этот запрос:
INSERT INTO TABLE2 (ColumnB)
SELECT t1.ColumnB
FROM TABLE1 AS t1
INNER JOIN
TABLE2 AS t2
ON t1.ColumnA = t2.ColumnA;
Но, похоже, это не сработало. Я что-то пропустил?
2 ответа
Решение
Вам нужно использовать инструкцию UPDATE для обновления таблицы. ВСТАВКА добавит новые строки.
UPDATE Table2
JOIN Table1
ON
Table2.columnA = Table1.ColumnA
SET
Table2.ColumnB = Table1.ColumnB
WHERE
Table2.ColumnB IS NULL
Вы, кажется, не хотите вставлять. Похоже, вы хотите обновить строки уже в table2. Ты можешь использовать:
update table2 set ColumbB=(select ColumnB from table1 where table1.ColumnA=table2.ColumnA)