mysql如何将查询结果插入到另一张表中

 更新时间:2023年10月12日 10:22:25   作者:飞廉灬少将  
这篇文章主要介绍了mysql如何将查询结果插入到另一张表中问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

mysql将查询结果插入到另一张表中

INSERT INTO

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

INSERT INTO 目标表 SELECT * FROM 来源表 WHERE 条件;

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

INSERT INTO newStudent SELECT * FROM student;

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

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

这里需要注意:两表的字段必须一致(位置一致,类型一致),否则会出现数据转换错误。

例:临时信息表部分字段信息中的数据同步到信息表中

INSERT INTO `litemall_company_enter`
(user_id,`name`,`type`,`time`,number,price,link,brief,product,`code`,legal_person,phone,email,address,`sign`,add_time,update_time,deleted)
SELECT
-1,t.`name`,t.`type`,t.`time`,t.number,t.price,t.link,t.brief,t.product,t.`code`,t.legal_person,t.phone,t.email,t.address,1,NOW(),NOW(),0
FROM `litemall_company_enter_temporary` t
WHERE t.id IN (2,4,6)

(3) 如果需要只导入目标表中不存在的记录,可以使用这种方法:

INSERT INTO 目标表(字段1, 字段2, …) SELECT 字段1, 字段2, … FROM 来源表 
WHERE NOT exists (SELECT * FROM 目标表 WHERE 目标表.比较字段 = 来源表.比较字段);

例:临时信息表部分字段信息中的数据同步到信息表中,如果存在则不同步,不存在则同步

INSERT INTO `litemall_company_enter`
(user_id,`name`,`type`,`time`,number,price,link,brief,product,`code`,legal_person,phone,email,address,`sign`,add_time,update_time,deleted)
SELECT
-1,t.`name`,t.`type`,t.`time`,t.number,t.price,t.link,t.brief,t.product,t.`code`,t.legal_person,t.phone,t.email,t.address,1,NOW(),NOW(),0
FROM `litemall_company_enter_temporary` t
WHERE NOT EXISTS
(SELECT * FROM `litemall_company_enter` e WHERE e.name=t.name AND e`.code=t.code )

SELECT INTO

SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。常用于创建表的备份复件或者用于对记录进行存档。

(1) 两张表字段完全一致,全部字段数据进行拷贝

SELECT * INTO student_backups FROM student WHERE class='高三(2)班';

(2) 拷贝指定字段

SELECT name,age,student_num INTO student_backups FROM student WHERE class='高三(2)班';

(3) IN 子句可用于向另一个数据库 Backup.mdb 中拷贝表

SELECT * INTO student IN 'Backups.mdb' FROM student WHERE class='高三(2)班';

(4) 多表关联选取数据

SELECT s.name,t.id INTO teacher_student_backups FROM student s INNER JOIN teacher t ON s.tid=t.id;

mysql查询结果的数据新增到另一张表里

1.把B表的数据查询出新增到A表去

`INSERT INTO a(id,name)?
SELECT ?b.id as id,b.name as name FROM b;`?

2.B表的字段满足不了A的情况下

‘name’是对应type ,now()是对应的create_date

INSERT INTO dim_attach (type,bill_id,url,create_date) select ?'name', ?a.id AS bill_id, a.head_address AS url,now()
FROM
?dim_people a

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL的下载、安装详细教程

    MySQL的下载、安装详细教程

    本文的主要目的是在 Windwos 上安装 MySQL,以下内容是源于 B站 - MySQL数据库入门到精通整理而来,需要的朋友可以参考下
    2023-06-06
  • mysql 如何获取两个集合的交集/差集/并集

    mysql 如何获取两个集合的交集/差集/并集

    这篇文章主要介绍了mysql获取两个集合的交集/差集/并集操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • MySQL中的BETWEEN...AND的使用情况

    MySQL中的BETWEEN...AND的使用情况

    这篇文章主要介绍了MySQL中的BETWEEN...AND的使用情况,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • MySQL在线DDL工具 gh-ost的原理解析

    MySQL在线DDL工具 gh-ost的原理解析

    这篇文章主要介绍了MySQL在线DDL工具 gh-ost,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • linux 之centos7搭建mysql5.7.29的详细过程

    linux 之centos7搭建mysql5.7.29的详细过程

    这篇文章主要介绍了linux 之centos7搭建mysql5.7.29的详细过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • 小心陷阱!MySQL中处理Null时需注意两点

    小心陷阱!MySQL中处理Null时需注意两点

    这篇文章主要为大家介绍了MySQL中处理Null时需注意的两点,很关键的两点,大家千万要小心
    2016-06-06
  • MSSQL output使用

    MSSQL output使用

    存储过程 output 输出参数 可以是一个字符串
    2009-05-05
  • MySql比较运算符正则式匹配REGEXP的详细使用详解

    MySql比较运算符正则式匹配REGEXP的详细使用详解

    这篇文章主要介绍了MySql比较运算符正则式匹配REGEXP的详细使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • mysql 5.7.24 安装配置图文教程

    mysql 5.7.24 安装配置图文教程

    这篇文章主要为大家详细介绍了mysql 5.7.24 安装配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • navicat 8 创建数据库与创建用户分配权限图文方法

    navicat 8 创建数据库与创建用户分配权限图文方法

    navicat是一款不错的图形化管理mysql的工具,大家一般都是用phpmyadmin或直接命令行操作,对于不是很熟悉命令的朋友,就可以使用navicat这个工具了,方便操作。
    2011-04-04

最新评论