【问题标题】:How to insert data from a table to a specific column of another?如何将数据从一个表插入到另一个表的特定列?
【发布时间】:2012-02-10 10:54:06
【问题描述】:

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

我使用时的问题

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

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

Table1 看起来像:

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

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

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

我需要的样子是:

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

有什么想法吗?

【问题讨论】:

  • table1和table2有关系吗?你怎么知道data4 属于data 所在的行,而不是data2 所在的行?
  • 好问题。事实上,这就是我想要找出的,因为如果没有这种关系,它只会在现有数据下方创建一个新行。

标签: mysql


【解决方案1】:

试试下面的查询

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

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

我相信您在 Table2 中也有 col1,因为没有它您无法比较两个表...

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

【讨论】:

  • 对不起...第二个在 SELECT 语句中带有“()”。第一个给出了语法错误。再次谢谢你!我整晚都在努力寻找答案。原来我只需要自己问这个问题。我非常需要这个功能,因为我需要它用于一个小组论文,我们将允许教授自动上传成绩。
猜你喜欢
  • 2014-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-05
相关资源
最近更新 更多