[转]mysql 从一个表中查数据并插入另一个表实现方法

不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将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

以上就是mysql 从一个表中查数据并插入另一个表实现方法的详细内容

From: https://www.php.cn/mysql-tutorials-362230.html

原文地址:https://www.cnblogs.com/ec04/p/12161350.html

时间: 2024-12-25 16:39:58

[转]mysql 从一个表中查数据并插入另一个表实现方法的相关文章

#MySQL# 从一个表中查数据,插入另一个表

1.如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:  INSERT INTO 目标表 SELECT * FROM 来源表;    例如: insert into t_a  select * from t_b ; 2.如果只希望导入指定字段,可以用这种方法: INSERT INTO 目标表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 来源表;(相对应字段的类型必须保持一致) 例如:insert into t_a  ( name, age ) s

把一个表中的数据导入到另一个表中

最近,需要对表中的数据进行操作.或者将表中的数据导入到另一张表中,或者将表中的数据生成insert脚本. 假如目标表存在 INSERT INTO 目标表名称 SELECT * FROM 来源表 假如目标表不存在 select * into 目标表名称 from 来源表 直接生成insert语句 select 'insert into 目标表 (字段1,字段2) values ('''+字段1+''','''+字段2+''');' sql_str from 目标表;

定时从一个数据库表中的数据存储到另外一个数据库中的表,而且怎么处理重复的数据?

原文:http://www.iteye.com/problems/77856 定时从一个数据库表中的数据存储到另外一个数据库中的表,而且怎么处理重复的数据? 表结构肯定是不能破坏,但是临时表如果是自己的数据库还行,问题是这个Oracle数据库是客户的数据库呢,你不能在他的数据库做任何多余的操作吧?还有别的更好的方法吗? 这个真的是比较困难. 首先,你要从客户机oracle取数据,因为这1分钟间隔之内不知道用户机新增加了哪些数据(大部分情况下是用户使用别的系统插入数据,而你又没有这个系统的程序接口

SQL语句技巧:查询存在一个表而不在另一个表中的数据记录

原文:SQL语句技巧:查询存在一个表而不在另一个表中的数据记录 方法一(仅适用单个字段)使用 not in ,容易理解,效率低 select A.ID from A where A.ID not in (select ID from B) 方法二(适用多个字段匹配)使用 left join...on... , "B.ID isnull" 表示左连接之后在B.ID 字段为 null的记录 select A.ID from A left join B on A.ID=B.ID where

关于ORALCE一个表空间的数据导入到另一个表空间的方法(原创)

用户:   whnaproject     所属表空间: whnaproject 新用户   : wniec            所属新表空间: wniec 要求:将用户whnaproject中的数据库表以及数据 ,全部复制到 新表空间wniec的  wniec用户中. 常规过程:用exp命令把用户whnaproject的表及数据导出,然后用IMP命令把导出的表及数据导入到新用户wniec中. 存在问题:用户whnaproject的表及数据可以导入到新用户wniec中,但wniec中的导入的表

mysql从一个表中拷贝数据到另一个表中sql语句

这一段在找新的工作,今天面试时,要做一套题,其中遇到这么一句话,从一个表中拷贝所有的数据到另一个表中的sql是什么? 原来我很少用到,也没注意过这个问题,面试后我上网查查,回来自己亲手写了写,测试了下,确实有的.现在我记录下. 这个语句是:insert into A select * from B;这个语句根据需要变化,字段一定要一致: 另一种是MySQL复制表结构及数据到新表:CREATE TABLE 新表 SELECT * FROM 旧表;例子sql语句:CREATE TABLE new_t

delete表1条件是另一个表中的数据,多表连接删除(转)

DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释:1. delete from t1 where 条件2.delete t1 from t1 where 条件3. delete t1 from t1,t2 where 条件4.delete t1,t2 from t1,t2 where 条件前 3者是可行的,第4者不可行.也就是简单用delete语句无法进行多表删除数据操作,不过可以建立级联删除,在两个表之间建立级联删除关系,则可以实现删除一个表的数据时,同时删除另

C# 将DataTable表中的数据批量插入到数据库表中的方法

C#中有时候需要将内存中的数据批量插入到数据库表中,使用for循环进行批量插入不但耗时而且会频繁操作数据库. 针对数据量很少的可以使用for循环插入,但是针对于数据量大的则不推荐使用for循环插入,推荐使用sql的块处理插入. 块处理不但耗时少而且不会频繁对数据库进行操作,只是需要注意的一点是DataTable中的列必须与表的列完全一致. 如下代码是批量插入的一个函数,自测可用. 1 #region 使用SqlBulkCopy将DataTable中的数据批量插入数据库中 2 /// <summa

MYSQL查询~ 存在一个表而不在另一个表中的数据

A.B两表,找出ID字段中,存在A表,但是不存在B表的数据.A表总共13w数据,去重后大约3W条数据,B表有2W条数据,且B表的ID字段有索引. 方法一 使用 not in ,容易理解,效率低  ~执行时间为:1.395秒~ 1 select distinct A.ID from A where A.ID not in (select ID from B) 方法二 使用 left join...on... , "B.ID isnull" 表示左连接之后在B.ID 字段为 null的记录