首頁 > 資料庫 > mysql教程 > 如何在SQL中根據符合的ID更新表記錄?

如何在SQL中根據符合的ID更新表記錄?

Susan Sarandon
發布: 2025-01-23 00:53:10
原創
967 人瀏覽過

How to Update Table Records Based on Matching IDs in SQL?

根據ID匹配更新SQL表記錄

引言

在資料庫管理中,有時需要根據另一個表中匹配的ID來更新一個表中的資料。這在遷移資料或同步表之間資訊時特別有用。

問題描述

假設我們有一個資料庫,其中包含兩個表,Sales_ImportRetrieveAccountNumber,每個表都包含一個名為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中文網其他相關文章!

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