sql 中更新表數據的通用方法包括:使用 join 語句,匹配兩個表并更新目標表的指定列;使用子查詢,獲取源表中匹配行的值并更新目標表;使用 merge 語句(mysql 8.0 及更高版本),合并兩個表并按條件更新或插入數據。
根據一個表的數據更新另一個表數據的 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;
登錄后復制