3

我有两个表,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 个字段?如果是这样,有没有办法解决这个问题或替代方法?

谢谢

4

3 回答 3

6

尝试:

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

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

于 2011-12-30T19:34:25.487 回答
2

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

INSERT INTO TableB (id, name)
SELECT (id, name)
FROM TableA
WHERE TableA.id = 1
于 2011-12-30T19:35:22.523 回答
1

指定表 b 中的列

INSERT INTO TableB (id, name)
SELECT id, name
FROM TableA
WHERE id = 1
于 2011-12-30T19:42:08.687 回答