SQL Jointure Externe




  SQL > Commandes SQL > Jointure Externe

Nous avons précédemment analysé la jointure gauche ou jointure intérieure, où nous avons sélectionné des lignes communes aux tables désignées pour une jointure. Comment devons-nous procéder dans les cas où nous serions intéressés à sélectionner des éléments d’une table indépendamment de s’ils sont contenus dans la deuxième table ? Il est nécessaire d’utiliser maintenant la commande OUTER JOIN de SQL.

La syntaxe pour exécuter une jointure externe sous SQL dépend de la base de données utilisée. Par exemple, dans Oracle, il faut placer un "(+)" dans la clause WHERE de l’autre côté de la table dans laquelle nous souhaitons inclure toutes les lignes.

Supposons que nous avons les deux tables suivantes :

Table Store_Information
store_name Sales Date
Los Angeles 1500 € 05-Jan-1999
San Diego 250 € 07-Jan-1999
Los Angeles 300 € 08-Jan-1999
Boston 700 € 08-Jan-1999

Table Geography
region_name store_name
East Boston
East New York
West Los Angeles
West San Diego

et nous souhaitons trouver le montant des ventes de tous les magasins. Dans le cas d’une jointure régulière, il n’est pas possible d’obtenir le critère de recherche souhaité étant donné que "New York" n’apparaîtra pas dans la table Store_Information. Par conséquent, il est nécessaire d’exécuter une jointure externe sur les deux tables ci-dessus :

SELECT A1.store_name, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.store_name = A2.store_name (+)
GROUP BY A1.store_name

Notez que dans ce cas de figure, c’est la syntaxe Oracle qui est utilisée pour la jointure externe.

Résultat :

store_name SALES
Boston 700 €
New York
Los Angeles 1800 €
San Diego 250 €

Remarque : à défaut d’une correspondance dans la deuxième table, la valeur NULL sera retournée. Dans ce cas, "New York" n’apparaîtra pas dans la table Store_Information, sa colonne "SALES" correspondante contient une valeur NULL.

SQL Concaténer >>



Copyright © 2013   1keydata.com   Tous droits réservés.


SQL SELECT
SQL DISTINCT
SQL WHERE
SQL AND OR
SQL IN
SQL BETWEEN
SQL LIKE
SQL ORDER BY
SQL Fonctions
SQL COUNT
SQL GROUP BY
SQL HAVING
SQL ALIAS
SQL Jointure
SQL Jointure Externe
SQL Concaténer
SQL SUBSTRING
SQL TRIM






Plan du site