Maison > base de données > tutoriel mysql > Comment mettre à jour les enregistrements de table en fonction des ID correspondants dans SQL ?

Comment mettre à jour les enregistrements de table en fonction des ID correspondants dans SQL ?

Susan Sarandon
Libérer: 2025-01-23 00:53:10
original
967 Les gens l'ont consulté

How to Update Table Records Based on Matching IDs in SQL?

Mettre à jour les enregistrements de la table SQL en fonction de la correspondance des ID

Présentation

Dans la gestion de bases de données, il est parfois nécessaire de mettre à jour les données d'une table en fonction des ID correspondants dans une autre table. Ceci est particulièrement utile lors de la migration de données ou de la synchronisation d'informations entre des tables.

Description du problème

Supposons que nous ayons une base de données avec deux tables, Sales_Import et RetrieveAccountNumber, chaque table contient une colonne nommée LeadID. La table Sales_Import a une colonne AccountNumber qui doit être mise à jour avec la valeur LeadID correspondante de la table RetrieveAccountNumber en fonction de la valeur AccountNumber correspondante.

Tentative échouée

La tentative initiale de mise à jour d'un enregistrement à l'aide de la requête suivante a échoué :

<code class="language-sql">UPDATE [Sales_Lead].[dbo].[Sales_Import]
SET    [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber
                          FROM   RetrieveAccountNumber
                          WHERE  [Sales_Lead].[dbo].[Sales_Import]. LeadID =
                                                RetrieveAccountNumber.LeadID)</code>
Copier après la connexion

Cette requête remplace le numéro de compte par une valeur NULL.

Solution

La solution à ce problème réside dans l'utilisation de la syntaxe UPDATE FROM combinée aux opérations de jointure. Cette approche nous permet de mettre à jour les enregistrements d'une table en fonction des valeurs correspondantes dans une autre table. Voici les requêtes SQL pour différents systèmes de bases de données :

MySQL et MariaDB

<code class="language-sql">UPDATE
    Sales_Import SI,
    RetrieveAccountNumber RAN
SET
    SI.AccountNumber = RAN.AccountNumber
WHERE
    SI.LeadID = RAN.LeadID;</code>
Copier après la connexion

MS SQL

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

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal