代码之家  ›  专栏  ›  技术社区  ›  Hailwood

mysql::插入到表中,来自另一个表的数据?

  •  168
  • Hailwood  · 技术社区  · 15 年前

    我想知道是否有一种方法可以完全在sql中做到这一点:

    q1 = SELECT campaign_id, from_number, received_msg, date_received 
         FROM `received_txts` WHERE `campaign_id` = '8';
    INSERT INTO action_2_members (campaign_id, mobile, vote, vote_date)    
        VALUES(q1.campaign_id, q1.from_number, q1.received_msg, q1.date_received);
    

    注: 第一季度将返回约3万行。

    有没有什么方法可以像我在上面所尝试的那样直接使用sql呢? 直接从一个表(基本上是原始数据表)中提取数据并插入到另一个表(基本上是处理过的数据表)中?

    4 回复  |  直到 12 年前
        1
  •  383
  •   zerkms    15 年前
    INSERT INTO action_2_members (campaign_id, mobile, vote, vote_date)  
    SELECT campaign_id, from_number, received_msg, date_received
      FROM `received_txts`
     WHERE `campaign_id` = '8'
    
        2
  •  27
  •   Lokesh Deshmukh    11 年前

    整排

    insert into xyz select * from xyz2 where id="1";

    对于选定列

    insert into xyz(t_id,v_id,f_name) select t_id,v_id,f_name from xyz2 where id="1";
        3
  •  10
  •   IamMHussain    8 年前

    回答者 zerkms 是正确的方法。但是,如果有人希望在表中插入更多的额外列,则可以从以下位置获取:

    INSERT INTO action_2_members (`campaign_id`, `mobile`, `email`, `vote`, `vote_date`, `current_time`)
    SELECT `campaign_id`, `from_number`, 'example@domain.xyz', `received_msg`, `date_received`, 1502309889 FROM `received_txts` WHERE `campaign_id` = '8'
    

    在上面的查询中,有两个名为 电子邮件 &安培; 当前时间 .

        4
  •  4
  •   Mher Arsh    9 年前
    INSERT INTO Table1 SELECT * FROM Table2
    
        5
  •  0
  •   Amit Jain    6 年前
    INSERT INTO preliminary_image (style_id,pre_image_status,file_extension,reviewer_id,
    uploader_id,is_deleted,last_updated) 
    
    SELECT '4827499',pre_image_status,file_extension,reviewer_id,
    uploader_id,'0',last_updated FROM preliminary_image WHERE style_id=4827488
    

    分析

    如果要在mysql中将数据从一个表复制到另一个表,可以使用上面的查询

    1. 这里的源表和目标表是相同的,我们也可以使用不同的表。
    2. 我们没有复制的列很少 样式id 是否被删除 所以我们从另一张表中选择了硬编码的

    执行结果

    已执行1个查询,1个成功,0个错误,0个警告

    查询:插入初步图像(样式id、预图像状态、文件扩展名、审阅者id、上载者id、已删除、上次更新)选择。。。

    受影响的5行

    执行时间:0.385秒 传输时间:0秒 总时间:0.386秒