mysql 如何把查询到的结果插入到另一个表中

mysql 如何把查询到的结果插入到另一个表中,第1张

其实很简单,只是为了忘记,做个记录,用的时候方便。

不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有时还需要指定导入字段

本文就将以MySQL数据库为例,介绍如何通过SQL命令行将某个表的所有数据或指定字段的数据,导入到目标表 中。此方法对于SQLServer数据库,也就是T-SQL来说,同样适用 。

类别一、 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法:

INSERT INTO  目标表  SELECT  * FROM  来源表

例如,要将 articles 表插入到 newArticles 表中,则可以通过如下SQL语句实现:

INSERT INTO  newArticles  SELECT  * FROM  articles

类别二、 如果只希望导入指定字段,可以用这种方法:

INSERT INTO  目标表 (字段1, 字段2, ...)  SELECT   字段1, 字段2, ...   FROM  来源表

请注意以上两表的字段必须一致,否则会出现数据转换错误。

INSERT INTO TPersonnelChange(

    UserId,

    DepId,

    SubDepId,

    PostionType,

    AuthorityId,

    ChangeDateS,

    InsertDate,

    UpdateDate,

    SakuseiSyaId

)SELECT

    UserId,

    DepId,

    SubDepId,

    PostionType,

    AuthorityId,

    DATE_FORMAT(EmployDate, '%Y%m%d'),

    NOW(),

    NOW(),

    1

FROM

    TUserMst

WHERE

    `Status` = 0

AND QuitFlg = 0

AND UserId > 2

2种方法

第一种,建立正式的表,此表可供你反复查询

drop table if exists a_temp

create table a_temp as

select 表字段名称 from 表名称

第二种,建立临时表,此表可供你当次链接的 *** 作里查询.

create temporary table 临时表名称

select 表字段名称 from 表名称

首先查询出差异的数据来,然后执行 insert 将数据插入到表B即可

insert into 表B

select 表A.*

  from 表A

 where not exists(   --找出差异的数据

           select 1 from 表B

            where 表A.id = 表B.id -- 根据实际字段匹配两表

       )


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7370070.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存