このガイドでは、ある SQL テーブル (Sales_Import
) のレコードを別のテーブル (RetrieveAccountNumber
) の対応するデータを使用して更新し、共通の LeadID
で照合する方法を説明します。 一般的な課題は、null 値を検出することなく、AccountNumber
の値を使用して Sales_Import
内の RetrieveAccountNumber
を更新することです。 このソリューションでは、UPDATE
.JOIN
を含む
JOIN を使用した効率的なレコードの更新
UPDATE ... FROM ... JOIN
構文を使用すると、複数のテーブルのデータを組み合わせて効率的に更新できます。このメソッドにより、一致するレコードのみが更新されます。
MS SQL サーバー:
<code class="language-sql">UPDATE Sales_Import SET AccountNumber = RAN.AccountNumber FROM Sales_Import SI INNER JOIN RetrieveAccountNumber RAN ON SI.LeadID = RAN.LeadID;</code>
MySQL と MariaDB:
<code class="language-sql">UPDATE Sales_Import SI, RetrieveAccountNumber RAN SET SI.AccountNumber = RAN.AccountNumber WHERE SI.LeadID = RAN.LeadID;</code>
説明:
UPDATE Sales_Import
: 更新操作のターゲット テーブルを指定します。SET AccountNumber = RAN.AccountNumber
: これにより、AccountNumber
テーブル (RetrieveAccountNumber
) の RAN.AccountNumber
が AccountNumber
テーブルの Sales_Import
列に割り当てられます。FROM Sales_Import SI INNER JOIN RetrieveAccountNumber RAN ON SI.LeadID = RAN.LeadID
(MS SQL) または UPDATE Sales_Import SI, RetrieveAccountNumber RAN WHERE SI.LeadID = RAN.LeadID
(MySQL/MariaDB): これにより、LeadID
に基づいて 2 つのテーブルが結合され、一致する行のみが結合されます。 IDが更新されます。 INNER JOIN
(MS SQL) または WHERE
句 (MySQL/MariaDB) は、一致基準として機能します。このアプローチでは、両方のテーブルに一致する LeadID
が存在する行のみを更新することで、NULL 値の問題に直接対処します。 これにより、よりクリーンで効率的な更新プロセスが実現します。
以上が一致する ID を使用してある SQL テーブルを別の SQL テーブルから更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。