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

Comment mettre à jour une table Oracle SQL avec les données d'une autre table ?

Susan Sarandon
Libérer: 2025-01-22 02:46:10
original
478 Les gens l'ont consulté

How to Update an Oracle SQL Table with Data from Another Table?

Mettre à jour les données de la table à l'aide d'Oracle SQL

Lorsque vous utilisez des bases de données relationnelles telles qu'Oracle SQL, vous pouvez rencontrer des scénarios dans lesquels vous devez mettre à jour une table avec les données d'une autre table. Cette tâche est généralement effectuée à l'aide de la commande UPDATE de SQL.

Question :

Supposons qu'il y ait deux tables, le tableau 1 et le tableau 2, contenant toutes deux des colonnes id, name et desc, et que vous deviez mettre à jour les données du tableau 1 avec les données correspondantes du tableau 2 en fonction des valeurs d'identifiant correspondantes. Le résultat souhaité est que le tableau 1 doit être mis à jour avec les valeurs name et desc correspondant aux valeurs id du tableau 2.

Solution :

Pour implémenter cette mise à jour, vous pouvez utiliser la mise à jour appropriée dans Oracle SQL. Voici la méthode détaillée :

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

  • La commande UPDATE démarre l'opération de mise à jour sur la table 1, en l'appelant t1.
  • La clause SET précise que les colonnes name et desc du tableau 1 seront mises à jour avec les valeurs du tableau 2.
  • La sous-requête de la clause SET récupère les valeurs de nom et de desc correspondantes pour chaque ligne du tableau 1 à partir du tableau 2 (t2).
  • La clause WHERE dans la sous-requête garantit que seules les lignes avec des valeurs d'identifiant correspondantes sont mises à jour.
  • La clause WHERE externe vérifie en outre s'il existe une ligne dans le tableau 2 qui correspond à chaque ligne du tableau 1. Cela garantit que seules les lignes avec des correspondances valides sont mises à jour.

Approche alternative (en supposant que la clé conserve la vue) :

Si la jointure entre le tableau 1 et le tableau 2 aboutit à une vue préservant les clés, vous pouvez également utiliser la méthode suivante :

<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 méthode suppose que la vue préservant les clés a été créée comme étape intermédiaire.
  • La première partie est une sous-requête qui effectue une jointure entre le tableau 1 et le tableau 2.
  • En gardant la vue basée sur la clé, vous pouvez directement mettre à jour les colonnes name et desc du tableau 1 avec les valeurs de la vue intermédiaire.

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