ホームページ >データベース >mysql チュートリアル >関連する AnswerID を使用して追跡テーブル内の NULL QuestionID を更新するにはどうすればよいですか?
チャレンジ:
追跡テーブルには、「QuestionID」列に NULL 値が含まれる行が含まれています。 幸いなことに、同じテーブル内の関連する「AnswerID」列が、「Answers」テーブル内で正しい「QuestionID」を見つけるための鍵を保持しています。目標は、これらの NULL の「QuestionID」エントリに、「Answers」テーブルの対応する値を入力することです。
解決策:
この更新を実行するための SQL クエリは次のとおりです。
<code class="language-sql">UPDATE QuestionTrackings q INNER JOIN QuestionAnswers a ON q.AnswerID = a.AnswerID SET q.QuestionID = a.QuestionID WHERE q.QuestionID IS NULL;</code>
説明:
このクエリは、INNER JOIN
を使用して、QuestionTrackings
(q
というエイリアス) テーブルと QuestionAnswers
(a
というエイリアス) テーブルを接続します。結合条件 q.AnswerID = a.AnswerID
により、(AnswerID
に基づく) 一致する行のみが考慮されます。 SET
句は、a.QuestionID
が NULL である各行の q.QuestionID
値を q.QuestionID
に割り当てます。
重要な考慮事項:
更新のプレビュー: ステートメントを実行する前に、(同じ UPDATE
句と SELECT
句を使用して) JOIN
クエリを実行して、影響を受ける行をプレビューします。これにより、データに変更を加える前に、更新の正確性を検証できます。WHERE
データの整合性: テーブル内の各 AnswerID
が QuestionTrackings
テーブル内の単一の QuestionID
に一意にマッピングされていることを確認します。 QuestionAnswers
値が重複すると、予測できない更新結果が発生する可能性があります。AnswerID
以上が関連する AnswerID を使用して追跡テーブル内の NULL QuestionID を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。