首页 > 数据库 >mysql根据一个表的数据更新另一个表数据的SQL写法

mysql根据一个表的数据更新另一个表数据的SQL写法

时间:2024-11-06 16:21:34浏览次数:3  
标签:table2 table1 mysql UPDATE t1 SET SQL 数据 id

ql 中更新表数据的通用方法包括:使用 join 语句,匹配两个表并更新目标表的指定列;使用子查询,获取源表中匹配行的值并更新目标表;使用 merge 语句(mysql 8.0 及更高版本),合并两个表并按条件更新或插入数据。

 

根据一个表的数据更新另一个表数据的 SQL 写法

最近大家都在看

MySQL update 命令的详细用法

怎么查看mysql的锁表

mysql如何将字符串转换成数字

方法一:使用 JOIN 语句

1

2

UPDATE table2 SET column2 = table1.column1

JOIN table1 ON table2.id = table1.id;

方法二:使用子查询

1

2

3

4

5

6

UPDATE table2

SET column2 = (

    SELECT column1

    FROM table1

    WHERE table2.id = table1.id

);

方法三:使用 MERGE 语句(MySQL 8.0 及更高版本)

1

2

3

4

5

MERGE INTO table2 AS t2

USING table1 AS t1

ON t2.id = t1.id

WHEN MATCHED THEN

  UPDATE SET column2 = t1.column1;

示例

假设有以下两个表:

  • table1:包含具有 id 和 name 列的数据
  • table2:包含具有 id 和 description 列的数据

要使用 table1 中的 name 更新 table2 中的 description,可以使用以下 SQL 查询:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

-- 使用 JOIN 语句

UPDATE table2 SET description = table1.name

JOIN table1 ON table2.id = table1.id;

 

-- 使用子查询

UPDATE table2

SET description = (

    SELECT name

    FROM table1

    WHERE table2.id = table1.id

);

 

-- 使用 MERGE 语句(MySQL 8.0 及更高版本)

MERGE INTO table2 AS t2

USING table1 AS t1

ON t2.id = t1.id

WHEN MATCHED THEN

  UPDATE SET description = t1.name;

 

标签:table2,table1,mysql,UPDATE,t1,SET,SQL,数据,id
From: https://www.cnblogs.com/raincedar/p/18530481

相关文章

  • 用处多多!信创PostgreSQL认证证书含金量
    PostgreSQL是目前讨论比较多的数据库技术,国内很多大的企业都在开发基于PostgreSQL的数据库产品,比如腾讯云TDSQL-PG版、阿里云PolarDB-PG版、人大金仓等等,考取PostgreSQL数据库证书对个人在数据库领域的职业发展具有多方面的积极作用。以下是对其用处的详细分析:​一、提升专业能......
  • 1.python的基本语法和简单数据类型
    1.1语法特点1.1.1注释语句单行注释在所需注释内容前加'#'号#我是一个注释多行注释'''(单引号/或双引号)注释代码''''''我是代码我是代码我是代码我是代码'''1.2.1缩进先看代码if<我是条件1>:<我是代码><我是代码>else:<我是......
  • Jetson AGX Orin平台相机驱动r35.4.1升级到r35.5.0版本,vi无数据导致内核崩溃问题【有
    1.问题描述在r35.4.1中的驱动程序中相机采集正常;升级到r35.5.0没有问题后,当使用v4l2-ctl命令打印帧速率时,当没有连接传感器或传感器没有启动流时,在dmesg中发生以下错误:[1432.454398]tegra-camrtc-capture-vitegra-capture-vi:uncorr_err:requesttimedoutafter250......
  • 精准、智能、高效:AI平台如何提升医疗数据处理效率50%
    思通数科的大模型是一款集成自然语言处理、多模态分析与知识图谱技术的智能系统,专为提升行业信息处理效率和决策支持而设计。该模型依托深度学习与数据驱动,能够在合同审查、智能问答、医疗文本处理等场景中实现精准的文本分类、信息抽取与风险识别。特别在多模态数据处理方面,模型......
  • P11227 [CSP-J 2024] 扑克牌(官方数据)
    P11227[CSP-J2024]扑克牌(官方数据)1#include<bits/stdc++.h>2usingnamespacestd;3intn;4chars[5];5intpoker[5][15];67intget1(){//返回花色12348if(s[0]=='D')return1;9elseif(s[0]=='C')return2;10......
  • Sqlite数据库操作
    publicclassSQLiteOperation{///<summary>///数据库位置///</summary>privatestaticreadonlystringFilePath=Environment.CurrentDirectory+@"\PARAM\SQLiteDatabase.db";publicSQLiteOperation(){......
  • .NET使用SqlSugar实现单列批量更新的几种实现和对比
    说明:SqlSugarCore版本:5.1.4.169方式1使用SqlSugar的Updateable特点:代码可读性好,易于维护支持事务和异常处理适用场景:中小型数据量更新优点:代码简洁易于调试缺点:性能相对较低内存占用较大publicasyncTask<int>BatchUpdateColumnAsync(stringtab......
  • Springboot医院门诊管理系统0qzik(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表科室信息,医生,患者,坐诊信息,挂号记录,检查项目,沟通交流,药品信息,就诊记录,入库记录,出库记录,医生排班开题报告内容一、研究背景与意义随着医疗技术的飞速......
  • Springboot医院固定资产系统d9y56(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表固定资产,资产入库,资产出库,科室,资产申购,资产申领开题报告内容一、项目背景与意义在现代医疗机构的运营管理中,固定资产的管理是一项至关重要的工作。随着医......
  • T-SQL运维脚本——查看SQLServer平均最耗资源时间的SQL语句
    可以在MSSM中直接对当前链接右键:活动与监视器中查看也可以执行下面的查询语句:SELECT(total_elapsed_time/execution_count)/1000N'平均时间ms',total_elapsed_time/1000N'总花费时间ms',total_worker_time/1000......