Maison > base de données > tutoriel mysql > Comment mettre à jour une colonne NULL dans une table à l'aide des données d'une table associée ?

Comment mettre à jour une colonne NULL dans une table à l'aide des données d'une table associée ?

Patricia Arquette
Libérer: 2025-01-10 10:03:44
original
204 Les gens l'ont consulté

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

Mise à jour des colonnes de la base de données : correspondance des valeurs dans les tables associées

La gestion de base de données nécessite souvent la mise à jour d'une colonne dans une table en fonction des données d'une table associée. Ceci est crucial pour l’intégrité des données et la correction des bugs.

Scénario :

Imaginez deux tables : QuestionTrackings et QuestionAnswers.

  • QuestionTrackings :
    • QuestionID (potentiellement NULL)
    • AnswerID
  • QuestionAnswers :
    • AnswerID
    • QuestionID

Un bug a entraîné certaines QuestionTrackings lignes ayant des valeurs NULL QuestionID. Heureusement, les valeurs AnswerID correspondantes ont le QuestionID correct dans le tableau QuestionAnswers. La tâche consiste à remplir les valeurs QuestionID manquantes dans QuestionTrackings.

Solution :

Cela peut être accompli efficacement en utilisant une instruction UPDATE combinée à un INNER JOIN :

UPDATE QuestionTrackings AS q
INNER JOIN QuestionAnswers AS a
ON q.AnswerID = a.AnswerID
SET q.QuestionID = a.QuestionID
WHERE q.QuestionID IS NULL;
Copier après la connexion
  • Les lignes de liens INNER JOIN avec les valeurs AnswerID correspondantes.
  • SET q.QuestionID = a.QuestionID met à jour QuestionTrackings avec le bon QuestionID de QuestionAnswers.
  • WHERE q.QuestionID IS NULL limite la mise à jour aux lignes avec des valeurs QuestionID manquantes.

Remarques importantes :

  • Vérification : Avant d'exécuter l'instruction UPDATE, il est recommandé d'utiliser une instruction SELECT avec la même JOIN pour prévisualiser les résultats et garantir l'exactitude des données. Confirmez que chaque AnswerID correspond à un seul QuestionID.
  • Mises à jour conditionnelles : Des conditions de clause WHERE supplémentaires peuvent être ajoutées pour des mises à jour plus sélectives (par exemple, WHERE q.QuestionID IS NULL AND q.Status = 'Active').

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal