将表中的所有行插入另一个表,单个查询

时间:2013-06-15 09:28:32

标签: mysql sql insert

我有一个带有user_ids的表,还有一个带有user_ids和其他数据的表(空)。

我想将所有ID插入空表。

我知道我可以用php脚本来做,甚至用

创建copy \ paste脚本
insert into tableB values(x),(y),(z);
但是,我感兴趣的是,当我不提及每个值时,我可以以某种方式使用sql创建查询,更像是将所有选定的值复制到新表中。 像

insert into tableB values(select x from tableA); --not SINGLE x! 
                                                 --ALL 'X' values returned in nested query...

5 个答案:

答案 0 :(得分:6)

看看st

INSERT ... SELECT Syntax

  

使用INSERT ... SELECT,您可以快速将多行插入表中   从一个或多个表。

语法

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    SELECT ...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

实施例

INSERT INTO tbl_temp2 (fld_id)
  SELECT tbl_temp1.fld_order_id
  FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;

SQL Fiddle DEMO

答案 1 :(得分:2)

insert into tableB select x from tableA

答案 2 :(得分:1)

你走了:

Insert into tableB select col_nm from tableA

答案 3 :(得分:1)

以下是必须完成的工作:

    inset into table B select col1,col2 from table A.

    insert into table B values is used when you know the data e.g

    insert into table B values('1','','30/06/1983')

答案 4 :(得分:0)

INSERT INTO tableB (x, y, z)  
SELECT x, y, z
  FROM `tableA`
 WHERE `x` = '42'