進階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中文網其他相關文章!