根據符合的使用者名稱更新表中的行值
問:更新表值
在 SQL 資料庫中,您有兩個表,table_a 和 table_b,它們都有一個名為 user_name 的公用欄位。您希望根據符合的 user_name 值,將 table_b 中的特定欄位(名為 column_b_1 和 column_b_2)複製到 table_a 中的對應欄位(column_a_1 和 column_a_2)。如何使用 SQL 語句實現此目標?
答:解
如果已就位適當的索引,您可以使用以下 UPDATE 語句:
<code class="language-sql">UPDATE table_a SET column_a_1 = (SELECT table_b.column_b_1 FROM table_b WHERE table_b.user_name = table_a.user_name), column_a_2 = (SELECT table_b.column_b_2 FROM table_b WHERE table_b.user_name = table_a.user_name) WHERE EXISTS ( SELECT * FROM table_b WHERE table_b.user_name = table_a.user_name );</code>
注意:此 UPDATE 語句使用子查詢從 table_b 中擷取與 table_a 中具有符合 user_name 的每一行相對應的列值。
如果效能令人擔憂,請考慮使用 SELECT 和 JOIN 操作建立暫存表以儲存修改後的行。隨後,您可以從 table_a 中刪除現有數據,並從臨時表重新填充它。
以上是如何根據符合的使用者名稱更新 SQL 表行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!