一种从一个表中选择字段并插入到另一个表的方法?

Posted

技术标签:

【中文标题】一种从一个表中选择字段并插入到另一个表的方法?【英文标题】:A way to SELECT fields from one table and INSERT to another? 【发布时间】:2011-12-30 19:31:23 【问题描述】:

我有两张表,TableA 和 TableB

TableA 有 9 个字段 TableB 有 7 个字段

两个表中有 2 个字段(id 和 name)是相同的,有没有办法从 TableA 中只选择这两个字段并将它们插入到 TableB 中?

我已经查看了使用此语句的 INSERT INTO... SELECT 方法:

INSERT INTO TableB
SELECT id, name
FROM TableA
WHERE id = 1

但我收到以下错误:

#1136 - Column count doesn't match value count at row 1

我假设这个错误不允许我在表中只插入 2 个字段?如果是这样,有没有办法解决这个问题或替代方法?

谢谢

【问题讨论】:

【参考方案1】:

试试:

INSERT INTO TableB(id, name)
SELECT id, name FROM TableA where id = 1;

必须假设 TableB 中的列名与 TableA 匹配,否则您需要输入正确的名称。

【讨论】:

谢谢 - 这正是我所需要的 :)【参考方案2】:

您需要为 TableB 指定列名(并可能在 WHERE 子句中指定 TableA.id):

INSERT INTO TableB (id, name)
SELECT (id, name)
FROM TableA
WHERE TableA.id = 1

【讨论】:

【参考方案3】:

指定表 b 中的列

INSERT INTO TableB (id, name)
SELECT id, name
FROM TableA
WHERE id = 1

【讨论】:

以上是关于一种从一个表中选择字段并插入到另一个表的方法?的主要内容,如果未能解决你的问题,请参考以下文章

在oracle中怎么把一张表的数据插入到另一张表中

将一个表的查询结果插入到另一个表中(oracle、mysql、sql 、GP)

雪花我们如何遍历临时表的每一行并将其值插入到另一个表中,其中每个字段的值都是单行?

将一个表的字段更新到另一个表中去

mysql 如何把查询到的结果插入到另一个表中

MySQL如何复制表中的一条记录并插入