Utiliser SQL pour mettre à jour une table Oracle avec les données d'une autre
Oracle SQL propose des méthodes efficaces pour mettre à jour une table avec les données d'une autre. Ceci peut être réalisé en utilisant des mises à jour corrélées ou une syntaxe alternative.
Illustrons avec des exemples de tableaux :
<code class="language-sql">Table 1: id | name | description ----------------------- 1 | a | abc 2 | b | def 3 | c | adf</code>
<code class="language-sql">Table 2: id | name | description ----------------------- 1 | x | 123 2 | y | 345</code>
Méthode 1 : mise à jour des sous-requêtes corrélées
Cette approche utilise une sous-requête corrélée pour récupérer les données correspondantes de Table 2
pour chaque ligne de Table 1
:
<code class="language-sql">UPDATE table1 t1 SET (name, description) = (SELECT t2.name, t2.description FROM table2 t2 WHERE t1.id = t2.id) WHERE EXISTS ( SELECT 1 FROM table2 t2 WHERE t1.id = t2.id );</code>
La clause WHERE EXISTS
garantit que seules les lignes dont les ID correspondent dans les deux tables sont mises à jour.
Méthode 2 : Syntaxe alternative utilisant une sous-requête
Cette méthode utilise une sous-requête pour créer une vue temporaire combinant les deux tables, puis met à jour cette vue :
<code class="language-sql">UPDATE (SELECT t1.id, t1.name name1, t1.description desc1, t2.name name2, t2.description desc2 FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id) SET name1 = name2, desc1 = desc2;</code>
Cette approche exploite un JOIN
pour combiner efficacement les tables. La mise à jour modifie ensuite les colonnes sélectionnées (name1
, desc1
) en fonction des colonnes correspondantes de Table 2
(name2
, desc2
). La colonne id
sert de clé de jointure, garantissant des mises à jour précises de Table 1
.
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!