首頁  >  文章  >  資料庫  >  如何根據匹配 ID 和排序順序使用另一個表中的資料更新表?

如何根據匹配 ID 和排序順序使用另一個表中的資料更新表?

Patricia Arquette
Patricia Arquette原創
2024-10-31 03:08:02811瀏覽

How to Update a Table with Data from Another Table Based on Matching IDs and Sort Order?

進階MySQL 查詢:使用另一個表格中的資料更新表

目前的任務是更新業務表中的電子郵件欄位使用人員表中電子郵件列的資料。這兩個表透過business_id列連接。

此更新查詢的簡單方法如下:

<code class="sql">UPDATE business b
SET b.email = (
    SELECT email
    FROM people p
    WHERE p.business_id = b.business_id AND sort_order = '1'
)
WHERE b.email = '';</code>

但是,此查詢只會更新每個business_id的第一個符合項目在人員表中。確保我們更新所有相關業務記錄的修改是:

<code class="sql">UPDATE business b, people p
SET b.email = p.email
WHERE b.business_id = p.business_id
AND p.sort_order = '1'
AND b.email = '';</code>

透過使用JOIN 語法明確連接業務(b) 和人員(p) 表,查詢確保只有具有最高sort_order 的人員值(即本例中的“1”)會影響更新。這更準確地符合使用每個企業排名最高的人員的電子郵件更新業務數據的預期目標。

以上是如何根據匹配 ID 和排序順序使用另一個表中的資料更新表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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