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

Mysql 如何将数据从一个表插入另一个表的特定列?,mysql,Mysql,所以我有两张桌子。表1有两列,col1和col2,其中col1已经填充。另一个表,表2,有很多列,但是有一列,sub,我需要它来填充表1中的第二列 当我使用 INSERT INTO Table1 (col2) SELECT Table2.sub FROM Table2 是的,它会将所需列的内容复制到表1,但会为每个列创建一个新行 表1如下所示: +-----+------+ |col1 | col2 | +-----+------+ |data | NULL | +-----+------+

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

当我使用

INSERT INTO Table1 (col2) SELECT Table2.sub FROM Table2
是的,它会将所需列的内容复制到表1,但会为每个列创建一个新行

表1如下所示:

+-----+------+
|col1 | col2 |
+-----+------+
|data | NULL | 
+-----+------+
|data2| Null |
+-----+------+
执行上述插入查询后,我得到:

+-----+------+
|col1 | col2 |
+-----+------+
|data | NULL | 
+-----+------+
|data2| Null |
+-----+------+
|Null | data4|
+-----+------+
|Null | data5|
+-----+------+
我需要的是:

+-----+-------+
|col1 | col2  |
+-----+-------+
|data | data4 | 
+-----+-------+
|data2| data5 |
+-----+-------+
有什么想法吗?

试试下面的查询

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

我相信表2中也有col1,因为没有col1,无法比较两个表


让我知道它是否有效……

表1和表2之间有关系吗?你怎么知道
data4
属于
data
行,而不是
data2
行?问得好。事实上,这正是我想要找到的,因为如果没有这种关系,它只会在现有数据下面创建一个新行。对不起。。。在SELECT语句中使用“()”的第二个。第一个给出了一个语法错误。再次感谢你!我整晚都在努力寻找答案。结果我不得不自己问这个问题。我非常需要这个功能,因为我需要一个小组论文,我们将允许教授自动上传成绩。
UPDATE Table1 set col2= (SELECT Table2.sub FROM Table2 where Table1.col1=Table2.col1)