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

Comment mettre à jour les ID de question NULL dans une table de base de données à l'aide d'une table associée ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-10 06:48:46566parcourir

How to Update NULL QuestionIDs in a Database Table Using a Related Table?

Mise à jour de la table de base de données : aligner les colonnes avec les valeurs référencées

Votre question concerne la mise à jour d'une table de base de données où la colonne QuestionID contient des valeurs nulles. Vous cherchez à définir ces valeurs nulles égales aux valeurs QuestionID correspondantes dans une table associée, « Réponses », référencée par la colonne AnswerID.

Pour y parvenir, vous pouvez exploiter une jointure interne. La requête suivante montre comment :

UPDATE QuestionTrackings q
INNER JOIN QuestionAnswers a ON q.AnswerID = a.AnswerID
SET q.QuestionID = a.QuestionID
WHERE q.QuestionID IS NULL;

L'opération INNER JOIN établit une connexion entre les lignes des tables QuestionTrackings et QuestionAnswers en fonction des valeurs AnswerID correspondantes. Cela nous permet d'accéder à la valeur QuestionID de la table QuestionAnswers pour chaque ligne de la table QuestionTrackings.

Vous pouvez ajouter des conditions supplémentaires à la clause WHERE pour affiner davantage les lignes à mettre à jour. Par exemple, si vous souhaitez uniquement mettre à jour les lignes où QuestionID est nul et AnswerID est inférieur à 500 :

UPDATE QuestionTrackings q
INNER JOIN QuestionAnswers a ON q.AnswerID = a.AnswerID
SET q.QuestionID = a.QuestionID
WHERE q.QuestionID IS NULL AND q.AnswerID < 500;

Il est recommandé de prévisualiser les lignes à mettre à jour à l'aide d'une requête de sélection avant d'exécuter la mise à jour pour garantir l'exactitude. :

SELECT *
FROM QuestionTrackings q
INNER JOIN QuestionAnswers a ON q.AnswerID = a.AnswerID
WHERE q.QuestionID IS NULL;

Cela vous aidera à vérifier que chaque AnswerID n'a qu'un seul QuestionID associé et à éviter des erreurs potentielles lors du processus de mise à jour.

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:
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