ホームページ >データベース >mysql チュートリアル >関連する AnswerID を使用して追跡テーブル内の NULL QuestionID を更新するにはどうすればよいですか?

関連する AnswerID を使用して追跡テーブル内の NULL QuestionID を更新するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-10 06:08:44587ブラウズ

How to Update NULL QuestionIDs in a Tracking Table Using Related AnswerIDs?

関連する回答 ID を使用した NULL 質問 ID の更新

チャレンジ:

追跡テーブルには、「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

  • データの整合性: テーブル内の各 AnswerIDQuestionTrackings テーブル内の単一の QuestionID に一意にマッピングされていることを確認します。 QuestionAnswers 値が重複すると、予測できない更新結果が発生する可能性があります。AnswerID

以上が関連する AnswerID を使用して追跡テーブル内の NULL QuestionID を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。