首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 多表 JOIN UPDATE/DELETE 實戰語法

     編輯:MySQL 資料庫相關知識

MySQL 支援多表連接更新與刪除,語法靈活且強大。本文匯總實戰常用模式。

多表 UPDATE 標準語法

UPDATE item i
JOIN resource_library r ON r.resource_id = l.resource_id
JOIN resource_review_link l ON i.item_id = l.instance_id
SET i.name = CONCAT('Review:', r.resource_name)
WHERE l.level = 'item' AND i.name = '';

SQL Server 風格語法(MySQL 也支援)

UPDATE a
SET a.schoolname = b.schoolname
FROM tb_Std AS a
JOIN tb_Sch AS b ON a.School = b.School
WHERE a.std_year = 2005;

多表 DELETE

MySQL/標準寫法:

DELETE a
FROM table1 a
JOIN table2 b ON a.col1 = b.col1 AND a.col2 = b.col2;

Oracle 兼容寫法(使用 EXISTS):

DELETE FROM table1 a
WHERE EXISTS (
    SELECT 1 FROM table2 b
    WHERE a.col1 = b.col1 AND a.col2 = b.col2
);

關鍵差異對比

特性MySQLSQL ServerOracle
UPDATE JOIN支援 UPDATE ... JOIN ... SET支援 UPDATE ... FROM ... JOIN需用 MERGE 或子查詢
DELETE JOIN支援 DELETE a FROM a JOIN b支援 DELETE a FROM a, b需用 EXISTS 子查詢
別名引用直接用別名需加表別名子查詢關聯外部表

最佳實踐建議

  • 更新/刪除前先用 SELECT 驗證影響行數
  • 確保 JOIN 條件列有索引,避免全表掃描
  • 大批量操作分批執行,防止長事務阻塞
  • 生產環境務必先在測試庫驗證
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved