MySQL从select查询中插入

Spa*_*ger 1 mysql insert

我有两张桌子:

表格1

| ColumnA  | ColumnB  |
-----------------------
| 123      | 1        |
Run Code Online (Sandbox Code Playgroud)

TABLE2

| ColumnA  | ColumnC  |
-----------------------
| 123      | 20       |
Run Code Online (Sandbox Code Playgroud)

我更改了表2以添加新列,因此它看起来像这样

新表2

| ColumnA  | ColumnC  | ColumnB  |
----------------------------------
| 123      | 20       | NULL     |
Run Code Online (Sandbox Code Playgroud)

现在,我想选择值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;
Run Code Online (Sandbox Code Playgroud)

但它似乎没有做到这一点.我错过了什么吗?

Mat*_*che 5

您需要使用UPDATE语句来更新表.INSERT将添加新行.

UPDATE Table2
JOIN Table1
ON
Table2.columnA = Table1.ColumnA
SET 
Table2.ColumnB = Table1.ColumnB
WHERE
Table2.ColumnB IS NULL
Run Code Online (Sandbox Code Playgroud)