如何将表中的数据插入另一个表的特定列?

时间:2012-01-14 17:45:11

标签: mysql

所以我有两张桌子。 Table1有两列,col1和col2,其中col1已经填充。另一个表Table2有很多列,但是我需要1列sub,我需要它来填充Table1中的第2列。

我使用时的问题

INSERT INTO Table1 (col2) SELECT Table2.sub FROM Table2

是,是的,它将所需列的内容复制到Table1,但它为每个列创建一个新行。

表1看起来像:

+-----+------+
|col1 | col2 |
+-----+------+
|data | NULL | 
+-----+------+
|data2| Null |
+-----+------+

执行上面的INSERT查询后,我得到:

+-----+------+
|col1 | col2 |
+-----+------+
|data | NULL | 
+-----+------+
|data2| Null |
+-----+------+
|Null | data4|
+-----+------+
|Null | data5|
+-----+------+

我需要看的是:

+-----+-------+
|col1 | col2  |
+-----+-------+
|data | data4 | 
+-----+-------+
|data2| data5 |
+-----+-------+

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

尝试以下查询

UPDATE Table1 set col2= SELECT Table2.sub FROM Table2 where Table1.col1=Table2.col1

OR

UPDATE Table1 set col2= (SELECT Table2.sub FROM Table2 where Table1.col1=Table2.col1)

我相信你在表2中也有col1,没有你不能比较两个表......

让我知道它是否有效......