一种从一个表中选择字段并插入到另一个表的方法?
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、mysql、sql 、GP)