MySQL 两张表关联更新(用一个表的数据更新另一个表的数据)

有两张表,info1, info2 。

info1:

info2:

现在,要用info2中的数据更新info1中对应的学生信息,sql语句如下:

UPDATE info1 t1 JOIN info2 t2
ON t1.name = t2.name
SET t1.age = t2.age, t1.class = t2.class;

运行结果如下:

更新过的info1:

至于效率问题,之前我有三张表,都在40万左右。需要将 table2 中的两个字段(step1),table3 中的一个字段(step2),更新到 table1 中。step1 用时半个小时左右,而 step2 用了两个多小时,不知为何。三个表都根据一个相同字段建立了唯一索引。

本人装了 navicat 破解版,垃圾,有时候越着急,就越是卡。

原文地址:https://www.cnblogs.com/zrmw/p/11720684.html

时间: 2024-10-12 04:52:24

MySQL 两张表关联更新(用一个表的数据更新另一个表的数据)的相关文章

数据库MySQL中关于“多表关联更新”的那些事

在常见的sql中,我们经常在查询中进行多表关联查询,用的比较熟练.今天在开发中遇到一个实际业务场景是多表关联更新,一时不知所措.本着多学习的态度,没有直接写java代码去实现,终于把多表关联更新的sql弄清楚了.下面将实际业务场景进行简化,分别有person表和information表,最终目的是将 information表中的年龄更新到person表中的每个人的年龄.分别写了几个sql demo来把多表更新的知识理解透彻. 首先,在更新前,person表和information表分别如下: i

Oracle\MS SQL Server Update多表关联更新

原文:Oracle\MS SQL Server Update多表关联更新 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据.我们先来讨论根据其他表数据更新你要更新的表   一.MS    SQL    Server   多表关联更新      sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来.虽然只能对一个表进行更新,但是通过将要更新的表与其它的数据源连接起来,就

MySQL 中两表关联更新数据

通过用户手机号,更新他的添加时间和过期时间,两表关联更改副表内容 UPDATE expand_money e INNER JOIN members m ON e.uid = m.id SET e.add_time=unix_timestamp(),e.expired_time=unix_timestamp()+60*60*24*7 WHERE m.user_phone = '139139139139'

数据迁移之sql server2005 中两表关联更新数据操作

近期在做数据迁移的工作,老系统的数据迁移到新系统,当中麻烦的确不少,因为是重新设计的系统与老系统中有太多的不一至性,例如表结构,字段的处理,像附件的存储方式,还有历史遗留数据... 后面会慢慢的把相关技术处理细节展现出来,当然,难度不大,只是琐碎事情太多. 今天就简单来看看数据的关联更新. 业务场景: 同一个业务,有一张主表及一张子表,字段差不多,只是老系统中主键生成方式GUID,而新的主键生成方式自增长型,这里就不论合不合理了,来看看我们的问题. 我们要做的就是把老数据导入到新表,并且保持他们

Mysql两张表相同ID匹配,输出到新表,删除旧表匹配

0x00:前言. 有两张表,一张表字段是ID-Email,另一张表字段是ID-PWD,想用SQL脚本把这两张表合并合并,因为有相同的ID才可以匹配. 0x01:示例. 一个字段ID:Email 另一个字段是ID:PWD 想要的输出就结果ID:Email:PWD 0x02:Mysql语句. 注意:因为MySQL为了安全,不允许一行执行两条语句(如:LINUX下用&&). 执行前将语句写入SQL脚本文件,文件后缀用.sql,tttt_test是数据库名. 以下是文本. CREATE TABLE

多表关联更新

为了方便起见,建立了以下简单模型,和构造了部分测试数据:在某个业务受理子系统BSS中, SQL 代码 --客户资料表 create table customers ( customer_id number(8) not null, -- 客户标示 city_name varchar2(10) not null, -- 所在城市 customer_type char(2) not null, -- 客户类型 ... ) create unique index PK_customers on cus

oracle多表关联更新

oracle的更新语句不通MSSQL那么简单易写,就算写出来了,但执行时可能会报 这是由于set哪里的子查询查出了多行数据值,oracle规定一对一更新数据,所以提示出错.要解决这样必须保证查出来的值一一对应. 原理 Update语句的原理是先根据where条件查到数据后,如果set中有子查询,则执行子查询把值查出来赋给更新的字段,执行更新. update dept a    set a.loc = (select b.loc from test_dept b where a.deptno =

SQL需求1-两表关联更新操作

今天,业务部门给我来了一个需求.需要将本地的的excel表格导入到SQL Server中,SQL Server原表t1增加了三列字段,默认是NULL无数据.将本地导入的excel表格t2表中这几列数据更新到原表t1中. 现将导入方法记录下来,方便今后使用: 1. 导入Excel表格到SQL Server中.(略) 2. 查看数据内容 3. 更新数据 4. 更新后数据显示结果 由于本人多年维护 MySQL,现将MySQL 的更新方法整理一下: 1.查看数据内容 2.更新数据 3.更新后数据显示结果

Sqlserver实现多表关联更新

A表 TYS_XM_RELATION2019  B表 TYS_XMYS2019(部分字段) 目标 :将B表的ysxmh用A表的newysxmh代替.代替条件A表的oidysxmh = B表的ysxmh update B set B.ysxmh = A.newysxmh from A,B  where A.oldysxmh = B.ysxmh; ( UPDATE TYS_XMYS2019 SET TYS_XMYS2019.YSXMH=TYS_XM_RELATION2019.newYsxmh  FR