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

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

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

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

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

方法一:使用 JOIN 语句

UPDATE table2 SET column2 = table1.column1
JOIN table1 ON table2.id = table1.id;

登录后复制

方法二:使用子查询

UPDATE table2
SET column2 = (
    SELECT column1
    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 column2 = t1.column1;

登录后复制

示例

假设有以下两个表:

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

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

-- 使用 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;

登录后复制

以上就是mysql根据一个表的数据更新另一个表数据的SQL写法的详细内容,更多请关注叮当号网其它相关文章!

文章来自互联网,只做分享使用。发布者:老板不要肥肉,转转请注明出处:https://www.dingdanghao.com/article/612834.html

(0)
上一篇 2024-06-25 06:00
下一篇 2024-06-25

相关推荐

联系我们

在线咨询: QQ交谈

邮件:442814395@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信公众号