Maison >base de données >tutoriel mysql >Comment mettre à jour les ID de question NULL dans une table de suivi à l'aide des ID de réponse associés ?
Défi :
Un tableau de suivi contient des lignes avec des valeurs NULL dans la colonne "QuestionID". Heureusement, la colonne « AnswerID » associée dans le même tableau contient la clé pour trouver le « QuestionID » correct dans le tableau « Réponses ». Le but est de remplir ces entrées NULL "QuestionID" avec les valeurs correspondantes du tableau "Answers".
Solution :
Voici la requête SQL pour réaliser cette mise à jour :
<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>
Explication :
Cette requête utilise un INNER JOIN
pour connecter les tables QuestionTrackings
(alias q
) et QuestionAnswers
(alias a
). La condition de jointure q.AnswerID = a.AnswerID
garantit que seules les lignes correspondantes (basées sur AnswerID
) sont prises en compte. La clause SET
attribue la valeur a.QuestionID
à q.QuestionID
pour chaque ligne où q.QuestionID
est NULL.
Considérations importantes :
Prévisualisez la mise à jour : Avant d'exécuter l'instruction UPDATE
, exécutez une requête SELECT
(en utilisant les mêmes clauses JOIN
et WHERE
) pour prévisualiser les lignes qui seront affectées. Cela vous permet de vérifier l'exactitude de la mise à jour avant d'apporter des modifications à vos données.
Intégrité des données : Confirmez que chaque AnswerID
de la table QuestionTrackings
correspond de manière unique à un seul QuestionID
de la table QuestionAnswers
. Des AnswerID
valeurs en double pourraient conduire à des résultats de mise à jour imprévisibles.
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!