代码之家  ›  专栏  ›  技术社区  ›  Hamza Abdaoui

使用Select查询插入…值

  •  1
  • Hamza Abdaoui  · 技术社区  · 7 年前

    这是我的桌子:

    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
    );
    

    现在,我想 INSERT 进入之内 my_table 使用表中的值 用户 .

    使用此查询:

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

    我得到这个错误:

    操作数应包含1列

    如何使用select query和auto_increment值插入?

    2 回复  |  直到 7 年前
        1
  •  2
  •   juergen d    7 年前
    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
  •  0
  •   Nicola Ben    7 年前

    尝试

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

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