Maison >base de données >tutoriel mysql >Comment mettre à jour une table SQL à partir d'une autre à l'aide d'un ID correspondant ?

Comment mettre à jour une table SQL à partir d'une autre à l'aide d'un ID correspondant ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-23 00:49:08183parcourir

How to Update One SQL Table from Another Using a Matching ID?

Mise à jour des tables SQL en fonction des identifiants correspondants

Ce guide montre comment mettre à jour les enregistrements dans une table SQL (Sales_Import) en utilisant les données correspondantes d'une autre table (RetrieveAccountNumber), correspondant sur un LeadID commun. Un défi courant consiste à mettre à jour AccountNumber dans Sales_Import en utilisant les valeurs de RetrieveAccountNumber sans rencontrer de valeurs nulles. La solution utilise une instruction UPDATE avec un JOIN.

Mettre à jour efficacement les enregistrements avec les JOINs

La syntaxe UPDATE ... FROM ... JOIN permet des mises à jour efficaces en combinant les données de plusieurs tables. Cette méthode garantit que seuls les enregistrements correspondants sont mis à jour.

MS SQL Serveur :

<code class="language-sql">UPDATE Sales_Import
SET AccountNumber = RAN.AccountNumber
FROM Sales_Import SI
INNER JOIN RetrieveAccountNumber RAN ON SI.LeadID = RAN.LeadID;</code>

MySQL et MariaDB :

<code class="language-sql">UPDATE Sales_Import SI, RetrieveAccountNumber RAN
SET SI.AccountNumber = RAN.AccountNumber
WHERE SI.LeadID = RAN.LeadID;</code>

Explication :

  • UPDATE Sales_Import : Ceci spécifie la table cible pour l'opération de mise à jour.
  • SET AccountNumber = RAN.AccountNumber : Ceci attribue le AccountNumber de la table RetrieveAccountNumber (RAN.AccountNumber) à la colonne AccountNumber de la table Sales_Import.
  • FROM Sales_Import SI INNER JOIN RetrieveAccountNumber RAN ON SI.LeadID = RAN.LeadID (MS SQL) ou UPDATE Sales_Import SI, RetrieveAccountNumber RAN WHERE SI.LeadID = RAN.LeadID (MySQL/MariaDB) : cela joint les deux tables basées sur le LeadID, garantissant que seules les lignes avec correspondance Les identifiants sont mis à jour. La clause INNER JOIN (MS SQL) ou WHERE (MySQL/MariaDB) fait office de critère de correspondance.

Cette approche résout directement le problème des valeurs nulles en mettant à jour uniquement les lignes où un LeadID correspondant existe dans les deux tables. Cela se traduit par un processus de mise à jour plus propre et plus efficace.

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