项目运用情景:新建表需要原表的数据

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

INSERT INTO  目标表  SELECT  * FROM  来源表 ;

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

INSERT INTO  newArticles  SELECT  * FROM  articles ;

2. 如果只希望导入指定字段,可以用这种方法:

INSERT INTO  目标表 (字段1, 字段2, ...)  SELECT   字段1, 字段2, ...   FROM  来源表 ;  注意后面是没有括号的

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

3.项目运用  : A为新建档案表, B为原有档案表主表

INSERT INTO A(
pk_sr_main,
xzqh,
mhz,
mhzsfz
) SELECT
pk_sr_main,
xzqh,
mhz,
mhzsfz
FROM
B
WHERE
mhzsfz = '332627196510082957';

------------------------------------------------------------------

INSERT INTO A (
sys_spzt,
sys_djzt,
sys_scbj,
mdjlx,
pk_sr_main
) SELECT
(
CASE
WHEN bzzt = '在保' THEN
1
ELSE
4
END
) AS sys_spzt,
(
CASE
WHEN bzzt = '在保' THEN
1
ELSE
0
END
) AS sys_djzt,
0 AS sys_scbj,
'aa' AS mdjlx,
? AS pk_sr_main
FROM
B
WHERE
pk_sr_main = ? ";

---------------------------------------------------------

INSERT INTO 新建表(
pk_sr_main,
fk_sr_zjff_main,
sys_xzqh,
xzqh,
mhz,
mhzsfz,
BTFFJE
) SELECT
nextval ('id'),
'e1a20dc7-b3e8-4cff-8451-aa372a57300d',
a.sys_xzqh,
a.xzqh,
a.mhz,
a.mhzsfz,
CASE
WHEN b.myhzh IS NOT NULL THEN
b.mkhyh
ELSE
a.mkhyh
END AS mkhyh,
CASE
WHEN b.myhzh IS NOT NULL THEN
b.mkhr
ELSE
a.mkhr
END AS mkhr,
CASE
WHEN b.myhzh IS NOT NULL THEN
b.myhzh
ELSE
a.myhzh
END AS myhzh,
CASE
WHEN b.mjjzbh IS NOT NULL THEN
b.mjjzbh
ELSE
a.mjjzbh
END AS mjjzbh,
'0.0'
FROM
原有表A a
LEFT JOIN 原有表A b ON (
b.sys_xzqh LIKE concat('330101', '%')
AND b.sys_spzt = 1
AND b.sys_djzt = 1
AND b.mdjlx = 'mj_jjzg'
AND b.sys_scbj = 0
AND b.sjbfnf = '2020'
AND b.sjbfyf = '02'
AND a.sjbfyzj = b.sjbfyzj
)
WHERE
a.sys_xzqh LIKE concat('330101', '%')
AND a.sys_spzt = 1
AND a.sys_djzt = 1
AND a.mdjlx = 'mj_jjzg'
AND a.sys_scbj = 0
AND a.sjbfnf = '2020'
AND a.sjbfyf = '02'

新建表需要原表的数据,mysql 如何把查询到的结果插入到新表中的更多相关文章

  1. mysql 查询去除空格字符然后倒入新表

    /* 导入数据的时候,有空白字符,去除一下然后导出. 四年前干的事,现在再干一遍. */ $dbhost= '127.0.0.1'; $dbuser= 'root'; $dbpass= '123456 ...

  2. 问题分析探讨 --> 大约有700W数据的表,把当天的10W数据select导入新表,整个原来的表就锁死

    Sun shine  16:15:55 帅哥  我有个手机表 大约有700百数据,,每天新增 大约五万,并且新也有update 大约10万  然后 我每晚 把当天的数据select 导入一个新表中的时 ...

  3. 最简单MySQL教程详解(基础篇)之多表联合查询

    在关系型数据库中,我们通常为了减少数据的冗余量将对数据表进行规范,将数据分割到不同的表中.当我们需要将这些数据重新合成一条时,就需要用到我们介绍来将要说到的表连接. 常用术语冗余(Redundancy ...

  4. ABAP 动态备份自建表数据到新表(自建表有数据的情况下要改字段长度或者其他)

    当abaper开发好一个程序给用户使用一段时间后,发现某个字段的长度需要修改,但数据库表中已经存在很多数据,冒然直接改表字段可能会导致数据丢失,这种问题的后果可能非常严重. 所以我想到先复制出一个新表 ...

  5. 百万级数据 MySQL处理(转)

    转自 http://www.cnblogs.com/win7xt/p/3156334.html 使用MySQL处理百万级以上数据时,不得不知道的几个常识   最近一段时间参与的项目要操作百万级数据量的 ...

  6. SQL Server 2017 SELECT…INTO 创建的新表指定到文件组

    原文:SQL Server 2017 SELECT-INTO 创建的新表指定到文件组 SELECT-INTO 在 SQL Server 中也是常见的一个功能,过去用此方法创建的新表只能存储到默认的文件 ...

  7. mysql复制表数据或表结构到新表中

    MySQL复制表数据到新表的几个步骤. 1.MySQL复制表结构及数据到新表 CREATE TABLE new_table SELECT * FROM old_table; 2.只复制表结构到新表 C ...

  8. MySQL innodb引擎下根据.frm和.ibd文件恢复表结构和数据

    记录通过.frm和.ibd文件恢复数据到本地 .frm文件:保存了每个表的元数据,包括表结构的定义等: .ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per ...

  9. {MySQL的逻辑查询语句的执行顺序}一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析

    MySQL的逻辑查询语句的执行顺序 阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SEL ...

随机推荐

  1. web框架的基础原理

    http协议 HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本 ...

  2. JN_0018:运行窗口不显示

    1,新建vbs文件 CreateObject("WScript.Shell").Run "cmd /c E:/OneDrive/NodeJS/WebServer/star ...

  3. nunjucks模板设计一个页面

    使用nunjucks代替原来的ejs,因为这个更强大,是node中主流的模板引擎 nunjucks官网 配置使用 nunjucks 模板引擎 nunjucks 模板引擎没有对模板文件名的后缀名做特定限 ...

  4. ASP.NET MVC5----数据注解和验证

    在使用MVC模式进行开发时,数据注解是经常使用的(模型之上操作),下面是我看书整理的一些常见的用法. 什么是验证,数据注解 验证 从全局来看,发现逻辑仅是整个验证的很小的一部分.验证首先需要管理用户友 ...

  5. css代码实现switch开关滑动

    效果预览: 代码如下: <style> #toggle-button{ display: none; } .button-label{ position: relative; displa ...

  6. Python安装1 —— Python3.8的安装

    本文内容皆为作者原创,如需转载,请注明出处:https://www.cnblogs.com/xuexianqi/p/12377746.html 一:什么是Python解释器 解释器(英语:Interp ...

  7. PAT (Basic Level) Practice (中文)1057 数零壹 (20 分) (按行输入带空格的字符串)

    给定一串长度不超过 1 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有多少 0.多少 1.例如给定 ...

  8. redis 安装 集群 主从 哨兵 docker

    安装redis 官方文档 docker run -d --net host -v /opt/myconfig/redis/redis.conf:/usr/local/etc/redis/redis.c ...

  9. Android 基础知识 -- Intent

    Intent (意图) Android通信的桥梁,可以通过Intent启动Activity , Service , 发送指定广播到Receiver <1> 启动Activity : sta ...

  10. 【JavaScript Weekly】#471 — JANUARY 17, 2020

    https://javascriptweekly.com/issues/471 #471 — JANUARY 17, 2020 READ ON THE WEB JavaScript Weekly Ba ...