ホームページ > データベース > 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 という 2 つのテーブルがあり、各テーブルに 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート