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 ?
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
:
<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
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 :
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
.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!