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

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

Patricia Arquette
Patricia Arquetteoriginal
2025-01-10 08:58:41773parcourir

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

Mettre à jour les colonnes avec les valeurs des tables associées

Cet article explique comment mettre à jour une colonne dans une table (QuestionTrackings) dont les valeurs proviennent d'une table associée (QuestionAnswers) en fonction d'une condition spécifique (QuestionID est NULL). Nous pouvons y parvenir en utilisant l'instruction UPDATE combinée avec INNER JOIN.

Requête SQL :

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

Description :

  • Utilisez INNER JOIN pour établir une connexion entre deux tables basée sur la colonne commune AnswerID.
  • La
  • Condition q.QuestionID IS NULL garantit que la mise à jour affecte uniquement les lignes de la table QuestionTrackings où QuestionID est NULL.
  • La clause
  • SET met à jour la colonne QuestionID de la table QuestionTrackings (q.QuestionID) avec le QuestionID correspondant de la table QuestionAnswers (a.QuestionID).

Remarque :

Avant d'exécuter une requête UPDATE, il est recommandé de prévisualiser les données concernées. Pour ce faire, vous pouvez modifier votre requête pour inclure les éléments suivants :

<code class="language-sql">SELECT *
FROM QuestionTrackings q
INNER JOIN QuestionAnswers a
ON q.AnswerID = a.AnswerID
WHERE q.QuestionID IS NULL
-- 可在此处添加其他条件</code>

Cela affichera les lignes qui seront mises à jour et confirmera que chaque AnswerID n'a qu'un seul QuestionID associé pour éviter les incohérences des données.

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