我有两张桌子:
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;
但它似乎没有做到这一点。我错过了什么吗?
答案 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)