【问题标题】:INSERT ... VALUES using SELECT queryINSERT ... VALUES 使用 SELECT 查询
【发布时间】:2018-07-12 16:31:11
【问题描述】:

这是我的桌子:

CREATE TABLE my_table (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    firstname VARCHAR(30) NOT NULL,
    lastname VARCHAR(30) NOT NULL
);

这是一个现有的表user

CREATE TABLE user (
    firstname VARCHAR(30) NOT NULL,
    lastname VARCHAR(30) NOT NULL
);

现在,我想使用表 user 中的值将 INSERT 转换为 my_table

使用这个查询:

INSERT INTO my_table (id, firstname, lastname) 
VALUES (NULL, (SELECT firstname, lastname FROM user) );

我得到这个错误:

操作数应包含 1 列

如何使用 select 查询和 auto_increment 值插入?

【问题讨论】:

    标签: mysql


    【解决方案1】:
    INSERT INTO my_table (id, firstname, lastname) 
    SELECT NULL, firstname, lastname FROM user
    

    或更好

    INSERT INTO my_table (firstname, lastname) 
    SELECT firstname, lastname FROM user
    

    【讨论】:

      【解决方案2】:

      试试

      INSERT INTO my_table (firstname, lastname) 
      SELECT firstname, lastname FROM user;
      

      自动增量将由您定义它的第一个表管理。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-30
        • 1970-01-01
        • 1970-01-01
        • 2011-12-10
        • 2022-01-20
        • 2015-09-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多