惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
人人都是产品经理
人人都是产品经理
云风的 BLOG
云风的 BLOG
小众软件
小众软件
F
Fortinet All Blogs
爱范儿
爱范儿
WordPress大学
WordPress大学
N
Netflix TechBlog - Medium
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
C
Check Point Blog
博客园 - 聂微东
D
Docker
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
Vercel News
Vercel News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
A
About on SuperTechFans
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog
宝玉的分享
宝玉的分享
Jina AI
Jina AI
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - 星畔

解决网站访问突然变成“403禁止访问:访问被拒绝” 解决openclaw + 飞书群不@所有人,群里其他人不回复的问题 针对 WSL 环境的特殊处理(如果你用的是 Windows 子系统) wsl 删除ubuntu-24.04 window 站点 vue3编译后的项目刷新页面404解决办法 ASP.NET Core Web API 需要先发布到 IIS 服务器才能运行 使用 .NET Core。如果目标进程未运行 .NET Core,则发生这种情况并不意外。 因 Cookie 被添加了 SameSite=None 属性导致在非 https 环境下无法为网站正确设置 Cookie 进而导致系统状态异常的问 完美解决:没有对“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files”的写访问权限。 - 星畔 Windows10 IIS Web服务器安装配置 解决“远程桌面连接:出现身份验证错误,要求的函数不受支持。。。 ” elasticsearch 请求被中止: 未能创建 SSL/TLS 安全通道”的原因及解决办法 从 bcp 客户端收到一个对 colid x 无效的列长度。 log4j的配置ConversionPattern详细讲解 SQL 更改字段长度 SQL Server(00):表压缩 Vue网站发布到iis后提示404页面不可访问 C#中四舍五入的正确写法是什么?
mysql根据一个表的数据更新另一个表数据的SQL写法
星畔 · 2024-11-06 · via 博客园 - 星畔
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;