首頁 > 資料庫 > mysql教程 > 如何使用 LEFT JOIN 更新多個 MySQL 表?

如何使用 LEFT JOIN 更新多個 MySQL 表?

Susan Sarandon
發布: 2024-12-15 13:33:26
原創
941 人瀏覽過

How to Update Multiple MySQL Tables Using a LEFT JOIN?

在MySQL 中通過LEFT JOIN 更新多個表

問題:

如何更新跨多個表格使用LEFT JOIN 的表格中的欄位?考慮一個場景,您希望透過以下LEFT JOIN 查詢更新結果集中的所有行:

SELECT T1.* FROM T1 LEFT JOIN T2 ON T1.id = T2.id WHERE T2.id IS NULL
登入後複製

答案:

MySQL 允許您執行UPDATE使用SELECT 語句中支援的任何連接類型的語句,包括LEFT JOIN。正確的語法如下:

UPDATE  t1
LEFT JOIN
        t2
ON      t2.id = t1.id
SET     t1.col1 = newvalue
WHERE   t2.id IS NULL
登入後複製

請注意,為了在SELECT 語句中獲得更好的性能,請考慮使用NOT IN / NOT EXISTS 語法:

SELECT  t1.*
FROM    t1
WHERE   t1.id NOT IN
        (
        SELECT  id
        FROM    t2
        )
登入後複製

有關性能詳細信息,請參閱本文:查找不完整的訂單:LEFT JOIN 與NOT IN 的性能比較。

但是,MySQL 不支援在 a 中使用目標表UPDATE 語句中的子查詢。因此,您必須依賴效率較低的 LEFT JOIN 語法來進行涉及多個資料表的更新。

以上是如何使用 LEFT JOIN 更新多個 MySQL 表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板