首頁  >  文章  >  資料庫  >  如何在MySQL多連接語句中更新表?

如何在MySQL多連接語句中更新表?

Barbara Streisand
Barbara Streisand原創
2024-11-24 11:12:11829瀏覽

How to Update a Table in a MySQL Multi-Join Statement?

在多連接語句中更新MySQL 表

在MySQL 中處理多個連接時,了解更新連接的不同語法表至關重要。與 SQL Server 不同,MySQL 採用了獨特的方法。

問題:

當需要對涉及一系列聯接的表執行更新操作時,可能會遇到困難。表不是連接順序中的第一個表。

示例查詢:

讓我們考慮一個假設的查詢:

UPDATE b
FROM tableA a
JOIN tableB b
   ON a.a_id = b.a_id
JOIN tableC c
   ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
    AND c.val > 10;

解決方案:

在MySQL 中,帶有JOIN 的UPDATE 語法的工作方式不同。語句中沒有明確指定要更新的表;相反,它是從 SET 子句推斷出來的。因此,正確的查詢應該是:

UPDATE tableA a
JOIN tableB b
   ON a.a_id = b.a_id
JOIN tableC c
   ON b.b_id = c.b_id
SET b.val = a.val+c.val
WHERE a.val > 10
    AND c.val > 10;

重點:

  1. MySQL 的 UPDATE with JOIN 語法不需要 FROM 子句。
  2. 要更新的表在SET子句中指定。
  3. 這個非標準語法是 MySQL 特定的擴充。

以上是如何在MySQL多連接語句中更新表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn