ホームページ > データベース > mysql チュートリアル > 関連テーブルのデータを使用して 1 つのテーブルの NULL 列を更新する方法

関連テーブルのデータを使用して 1 つのテーブルの NULL 列を更新する方法

Patricia Arquette
リリース: 2025-01-10 10:03:44
オリジナル
159 人が閲覧しました

How to Update a NULL Column in One Table Using Data from a Related Table?

データベース列の更新: 関連テーブル間での値の一致

データベース管理では、多くの場合、関連テーブルのデータに基づいて 1 つのテーブルの列を更新する必要があります。 これは、データの整合性とバグ修正にとって非常に重要です。

シナリオ:

QuestionTrackingsQuestionAnswers という 2 つのテーブルを想像してください。

  • QuestionTrackings:
    • QuestionID (NULL の可能性があります)
    • AnswerID
  • QuestionAnswers:
    • AnswerID
    • QuestionID

バグにより、一部の QuestionTrackings 行に NULL QuestionID 値が含まれるようになりました。 幸いなことに、対応する AnswerID 値には、QuestionID テーブル内に正しい QuestionAnswers があります。 タスクは、欠落している QuestionID 値を QuestionTrackings.

に入力することです。

解決策:

これは、UPDATE ステートメントと INNER JOIN:

を組み合わせて使用​​すると効率的に実行できます。
<code class="language-sql">UPDATE QuestionTrackings AS q
INNER JOIN QuestionAnswers AS a
ON q.AnswerID = a.AnswerID
SET q.QuestionID = a.QuestionID
WHERE q.QuestionID IS NULL;</code>
ログイン後にコピー
  • INNER JOIN は、一致する AnswerID 値を持つ行をリンクします。
  • SET q.QuestionID = a.QuestionID は、QuestionTrackings からの正しい QuestionIDQuestionAnswers を更新します。
  • WHERE q.QuestionID IS NULL は、QuestionID 値が欠落している行への更新を制限します。

重要な注意事項:

  • 検証: UPDATE ステートメントを実行する前に、同じ SELECT を持つ JOIN ステートメントを使用して結果をプレビューし、データの正確性を確認することをお勧めします。 各 AnswerID が単一の QuestionID にマッピングされていることを確認します。
  • 条件更新: より選択的な更新のために追加の WHERE 句条件を追加できます (例: WHERE q.QuestionID IS NULL AND q.Status = 'Active')。

以上が関連テーブルのデータを使用して 1 つのテーブルの NULL 列を更新する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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