MySQL从select查询中插入

时间:2013-03-08 20:15:40

标签: mysql insert

我有两张桌子:

TABLE1

| ColumnA  | ColumnB  |
-----------------------
| 123      | 1        |

TABLE2

| ColumnA  | ColumnC  |
-----------------------
| 123      | 20       |

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

NEW TABLE2

| 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 个答案:

答案 0 :(得分:5)

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

UPDATE Table2
JOIN Table1
ON
Table2.columnA = Table1.ColumnA
SET 
Table2.ColumnB = Table1.ColumnB
WHERE
Table2.ColumnB IS NULL

答案 1 :(得分:-2)

您似乎不想插入。您似乎想要更新table2中已有的行。您可以使用:

update table2 set ColumbB=(select ColumnB from table1 where table1.ColumnA=table2.ColumnA)