3

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

我想将所有 id 插入到空表中。

我知道我可以用 即 php 脚本甚至创建复制\粘贴脚本

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...
4

5 回答 5

6

看看st

插入 ... 选择语法

使用 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 小提琴演示

于 2013-06-15T09:30:23.967 回答
2
insert into tableB select x from tableA
于 2013-06-15T09:31:00.623 回答
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')
于 2013-06-15T09:51:00.943 回答
1

干得好:

Insert into tableB select col_nm from tableA
于 2013-06-15T09:34:22.120 回答
0
INSERT INTO tableB (x, y, z)  
SELECT x, y, z
  FROM `tableA`
 WHERE `x` = '42'
于 2013-06-15T09:35:41.890 回答