2011-12-15 170 views
2

嗨我想复制从表名下的列项目的全部内容到属于同一个数据库的表项目下的列名称。从一列复制到另一列(不同的表相同的数据库)mysql

我给出以下查询,但它引发错误,指出子查询返回多个记录。 (大约有600条记录)

Insert into Item set name = (Select Item from IName) 

感谢

+0

你需要在你的子查询中添加一个匹配(id或类似的记录匹配两个表) – Teson 2011-12-15 21:30:25

+0

第一个表是完全空白的。所以我不能添加一个匹配 – Ank 2011-12-15 21:31:02

+0

如果第一个表是完全空的,那么也许SELECT INTO会起作用。 – Aaron 2011-12-15 21:33:16

回答

8
INSERT INTO Item (Name) 
    SELECT Item 
    FROM IName 

当你要插入一个单列*表,INSERT作品要么:

INSERT INTO table (column) 
    VALUES (value1),(value2), ... (valueN) ; 

或:

INSERT INTO table (column) 
    SELECT a_column 
    FROM a_table 
         --- optional (multiple) JOINs 
         --- and WHERE 
         --- and GROUP BY  
         --- any complex SELECT query 

OK,上面可以有一个多列工作表中,只要所有其他 - 在INSERT语句中未明确说明 - 列已被定义为DEFAULT值或AUTO_INCREMENT


INSERT ... SET语法是有效的MySQL中只有当你要插入的具体哪一行只能用于:

INSERT INTO table 
    SET column = value1 ; 

等同于:

INSERT INTO table (column) 
    VALUES (value1) ; 
4
INSERT INTO Item (name) 
SELECT Item FROM IName 

Link

相关问题