引言
在資料庫管理中,有時需要根據另一個表中匹配的ID來更新一個表中的資料。這在遷移資料或同步表之間資訊時特別有用。
問題描述
假設我們有一個資料庫,其中包含兩個表,Sales_Import
和RetrieveAccountNumber
,每個表都包含一個名為LeadID
的欄位。 Sales_Import
表有一個AccountNumber
列,需要根據匹配的LeadID
值使用RetrieveAccountNumber
表中匹配的AccountNumber
值進行更新。
失敗嘗試
使用以下查詢嘗試更新記錄的初始嘗試失敗:
<code class="language-sql">UPDATE [Sales_Lead].[dbo].[Sales_Import] SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber FROM RetrieveAccountNumber WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID = RetrieveAccountNumber.LeadID)</code>
此查詢將帳號替換為NULL值。
解
此問題的解決方案在於使用UPDATE FROM
語法結合聯結操作。這種方法允許我們根據另一個表中的匹配值更新一個表中的記錄。以下是不同資料庫系統的SQL查詢:
MySQL和MariaDB
<code class="language-sql">UPDATE Sales_Import SI, RetrieveAccountNumber RAN SET SI.AccountNumber = RAN.AccountNumber WHERE SI.LeadID = RAN.LeadID;</code>
MS SQL
<code class="language-sql">UPDATE Sales_Import SET Sales_Import.AccountNumber = RAN.AccountNumber FROM Sales_Import SI INNER JOIN RetrieveAccountNumber RAN ON SI.LeadID = RAN.LeadID;</code>
以上是如何在SQL中根據符合的ID更新表記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!