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

谢谢

【问题讨论】:

    标签: mysql insert-into


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-17
        • 2016-06-30
        相关资源
        最近更新 更多