MySQL 从一个表中查出数据并插入到另一个表处理方案(详细)

这篇具有很好参考价值的文章主要介绍了MySQL 从一个表中查出数据并插入到另一个表处理方案(详细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PS:来源表:t_source、目标表:t_target

第一种
来源表和目标表字段完全一致

insert into t_target  select * from t_source;

第二种
来源表和目标表字段部分一致,只想导入来源表部分字段到目标表

insert into t_target(字段1,字段2,字段3, ...)  
select 字段1,字段2,字段3, ... from t_source;

第三种
只需要导入目标表中不存在的数据

insert into t_target (字段1, 字段2, ...)  
 SELECT 字段1, 字段2, ...  FROM t_source  
 WHERE not exists (select * from t_target 
 where t_target.比较字段 = t_source.比较字段); 

下面是一个完整的示例,展示了如何将一张名为 source_table 的源表的数据更新到一张名为 target_table 的目标表:

-- 创建目标表
CREATE TABLE target_table (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    age INT
);

-- 确定连接条件
ALTER TABLE target_table ADD COLUMN source_table_id INT;

UPDATE target_table
SET source_table_id = source_table.id
FROM target_table
INNER JOIN source_table
ON target_table.name = source_table.name;

-- 更新数据
UPDATE target_table
INNER JOIN source_table
ON target_table.source_table_id = source_table.id
SET target_table.age = source_table.age;

以上是一个简单的示例,你可以根据实际情况进行修改和扩展。

总结
通过以上步骤,我们可以将一张表的数据更新到另一张表。首先,我们需要创建一个目标表来接收数据,然后确定源表和目标表之间的连接条件,最后使用 UPDATE 语句将数据更新到目标表。
 

 

MySQL查询结果复制到新表的方法(更新、插入)

MySQL中可以将查询结果复制到另外的一张表中,复制的话通常有两种情况,一种是更新已有的数据,另一种是插入一条新记录。下面通过例子来说明。首先构建两个测试表。

表t1:

mysql将一张表的数据插到另一张表,MYSQL主从,mysql,数据库

表t2:

mysql将一张表的数据插到另一张表,MYSQL主从,mysql,数据库

1、如果t2表中存在score值,将score更新到t1表中。方法如下:

UPDATE t1,t2
SET t1.score = t2.score
WHERE t1.id = t2.id AND t2.score IS NOT NULL

这就是将查询结果作为条件更新另一张表,当然,t2也可以是更为复杂的一个查询结果而不是一个具体的表。

2、将t1表的username更新至t2表,将t2表的score更新至t1表。方法如下:

UPDATE t1,t2
SET t1.score = t2.score,t2.username = t1.username
WHERE t1.id = t2.id

这个方法其实跟上面的方法类似,可以同时更新两个表的数据,即做表部分数据的互相复制、更新。

3、将t2表的查询结果插入到t1表中。方法如下:

INSERT INTO t1(id,username,score)
SELECT t2.id,t2.username,t2.score FROM t2 where t2.username = 'lucy'

前面两种方式是更新表的记录,这种方式是插入一条新的记录。其实,从脚本可以看出,这个方法就是将查询和插入两个步骤合二为一。

用一个表更新另一个表

1、更新一个字段
方法一
   update table1 set field1=table2.field1 from table2
    where table1.id=table2.id

方法二
将两张表以内连接的方式进行查询更新

 UPDATE tableName1 t1
    LEFT JOIN tableName2 t2 ON t2.id = t1.id 
    SET t1.lpEntityType2 = t2.lpEntityType2 

方法三
update A m,B mp set m.job_type = mp.job_type where mp.mobile= m.mobile;

2、更新多个字段
方法一
   update B, A
    set 
        B.username = A.username,
        B.phone = A.phone
    where 
        B.userId = A.userId

方法二
将两张表以内连接的方式进行查询更新

update 
    B join A on B.userId=A.userId
set 
    B.username = A.username,
    B.phone = A.phone 
 

MYSQL 更新一个表字段为另外一张表字段

1、UPDATE m_node_device mnd SET mnd.enterprise_id = (SELECT md.enterprise_id FROM m_device md WHERE mnd.device_id = md.id)

2、--     更新表字段为查询结果中的某一个字段
UPDATE m_device md,
(
SELECT
    mi.img_url AS aa,
    mi.device_id AS bb 
FROM
    m_device_img mi
    INNER JOIN m_device_type_attr ma ON ma.id = mi.device_type_attr_id 
WHERE
    ma.attr_name = '设备铭牌' 
    ) b 
    SET md.nameplate_img = b.aa 
WHERE
    md.id = b.bb 
    AND md.nameplate_img = '' and md.is_deleted = 0
 文章来源地址https://www.toymoban.com/news/detail-759396.html

到了这里,关于MySQL 从一个表中查出数据并插入到另一个表处理方案(详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL SERVER:SELECT INTO 语句从一个表中复制数据并插入到新表中

    SQL SERVER:SELECT INTO 语句从一个表中复制数据并插入到新表中 在这篇文章中,将分享如何从一个表的所有或选定列中复制/选择数据,并在 SQL 中插入到一个新表中。 描述:SELECT INTO 语句从一个表(Source)中选择/复制数据并将其插入到一个新表(Destination)中。 实例:创建一个

    2024年02月13日
    浏览(58)
  • sql-从一个或多个表中向一个表中插入 多行

    INSERT还可以将SELECT语句查询的结果插入到表中,此时不需要把每一条记录的值一个一个输入,只需 要使用一条INSERT语句和一条SELECT语句组成的组合语句即可快速地从一个或多个表中向一个表中插入 多行。 基本语法格式如下: 在 INSERT 语句中加入子查询。 不必书写 VALUES 子句

    2024年02月14日
    浏览(38)
  • sqlserver数据库中把一张表中的数据复制到另一张表中

    我们在使用ERP时经常会遇到,把老系统的单据直接拉过来使用,但是对应的数据却没有,为空,这时候就需要把老系统数据库里的数据复制一份到新系统里,(方法如下) 1、如果是整个表复制表达如下: 2、如果是有选择性的复制数据表达如下: 3、一个数据库中的表中的数

    2024年02月12日
    浏览(52)
  • MyBatis: 向oracle表中插入null字段的处理

    一、可以在SQL中指定类型: 二、可以进行全局配置(单独使用MyBatis时可如下配置) 如果不进行配置,将报错

    2024年02月09日
    浏览(41)
  • 【mysql 插入数据问题】MySQL插入数据阻塞问题及优化方案

    摘要:本文主要介绍了MySQL数据库在插入数据时出现阻塞的常见原因,以及如何查看和优化这些问题。通过分析慢查询日志、优化索引、优化数据类型、批量插入等手段,可以有效地提高MySQL数据库的插入性能。 一、引言 MySQL作为一款广泛应用于各类项目的开源数据库,其性

    2024年02月02日
    浏览(51)
  • 【大数据】Hive 表中插入多条数据

    在 Hive 中,我们可以使用 INSERT INTO 语句向表中插入数据。当我们需要插入多条数据时,有多种方式可以实现。本文将介绍如何在 Hive 表中插入多条数据,并提供相应的代码示例。 最简单的方式是使用单个 INSERT INTO 语句插入多条数据。我们可以使用值列表的方式将多条数据一

    2024年02月12日
    浏览(44)
  • SQL Server向表中插入数据

    切换到对应的数据库 插入数据 方式1 注意: 列名就算是字符类型也不用加引号,数据如果对应的字段是字符串类型,需要加引号包裹起来 可以自动增长的字段是可以不用管的(如DepartmentId int primary key identity(1,1)这里就设置了自增,所以在下面的插入中没有该字段 执行完成之

    2024年02月04日
    浏览(55)
  • mysql插入重复数据的三种处理方式(DUPLICATE、IGNORE、REPLACE )

    “ INSERT   ...  ON  DUPLICATE   KEY  UPDATE   ”, 它是在插入操作时, 如果数据出现重复,则更新重复数据的值 。   示例: INSERT INTO myf_deal_data ( `ID`, `PTNAME`, `PTDATA`, `OPERTIME`, `REPORTTIME` ) VALUES     ( 111, \\\'858_Ua\\\', \\\'219.1000\\\', \\\'2022-04-01 00:45:00\\\', \\\'2022-06-28 10:04:52\\\' )  ON DUPLICATE KEY UPDATE PT

    2024年02月10日
    浏览(59)
  • 将一个 PostgreSQL 数据库复制到另一个数据库中

    以管理员身份进入cmd窗口,输入如下命令 语法: 示例:

    2024年02月22日
    浏览(44)
  • Python从一个Excel表格提取数据填到另一个表格

    本文,用Python从一个Excel表格提取数据填到另一个表格,详情代码中注释都说明了,请亲们详细查阅:

    2024年02月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包