はじめに
データベース管理では、別のテーブルの一致する ID に基づいて、あるテーブルのデータを更新する必要がある場合があります。これは、データを移行したり、テーブル間で情報を同期したりする場合に特に便利です。
問題の説明
データベースに Sales_Import
と RetrieveAccountNumber
という 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 サイトの他の関連記事を参照してください。