从一个表中选择字段并将INSERT转换为另一个表的方法?

时间:2011-12-30 19:31:24

标签: mysql insert-into

我有两个表,TableA和TableB

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

两个表中有两个相同的字段(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个字段?如果是这样,有没有办法绕过这个或另一种方法?

由于

3 个答案:

答案 0 :(得分:6)

尝试:

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

指定表b

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