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

Comment mettre à jour les données d'une table Oracle à partir d'une autre table à l'aide de SQL ?

Patricia Arquette
Libérer: 2025-01-22 03:03:13
original
270 Les gens l'ont consulté

How to Update Oracle Table Data from Another Table Using SQL?

Utiliser SQL pour mettre à jour les données d'une table Oracle à partir d'une autre table

Dans la gestion de bases de données relationnelles, il est souvent nécessaire de mettre à jour les données d'une table en utilisant les valeurs d'une autre table. Cela peut être accompli à l'aide de l'instruction SQL UPDATE.

Scène :

Considérons deux tableaux, le Tableau 1 et le Tableau 2, qui contiennent les données suivantes :

<code>表 1:
id    name    desc
-----------------------
1     a       abc
2     b       def
3     c       adf

表 2:
id    name    desc
-----------------------
1     x       123
2     y       345</code>
Copier après la connexion

Cible :

Mettez à jour le tableau 1 avec les colonnes name et desc du tableau 2 lorsque les colonnes id des deux tableaux correspondent. Les résultats attendus sont les suivants :

<code>表 1:
id    name    desc
-----------------------
1     x       123
2     y       345
3     c       adf</code>
Copier après la connexion

Option 1 : Mises à jour associées

Dans Oracle SQL, des mises à jour associées sont disponibles :

<code class="language-sql">UPDATE table1 t1
SET (name, desc) = (SELECT t2.name, t2.desc
                         FROM table2 t2
                        WHERE t1.id = t2.id)
 WHERE EXISTS (
    SELECT 1
      FROM table2 t2
     WHERE t1.id = t2.id )</code>
Copier après la connexion

Instructions :

Cette requête effectue une mise à jour sur la table1, en utilisant une sous-requête pour récupérer les valeurs de nom et de description correspondantes de la table2 en fonction de l'identifiant correspondant. La clause WHERE EXISTS garantit que seules les lignes de la table1 qui ont des lignes correspondantes dans la table2 sont mises à jour.

Option 2 : mise à jour basée sur JOIN

En supposant que le résultat produit par la jointure préserve les clés, l'instruction de mise à jour suivante peut être utilisée :

<code class="language-sql">UPDATE (SELECT t1.id, 
               t1.name name1,
               t1.desc desc1,
               t2.name name2,
               t2.desc desc2
          FROM table1 t1,
               table2 t2
         WHERE t1.id = t2.id)
   SET name1 = name2,
       desc1 = desc2</code>
Copier après la connexion

Instructions :

Cette requête effectue une mise à jour sur la vue de jointure, mettant à jour efficacement les colonnes name et desc de la table1 avec les valeurs correspondant à l'identifiant correspondant dans la table2.

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