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_NameSalesTxn_Date
Los Angeles150005-Jan-1999
San Diego25007-Jan-1999
Los Angeles30008-Jan-1999
Boston70008-Jan-1999

Table Geography
Region_NameStore_Name
EastBoston
EastNew York
WestLos Angeles
WestSan 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_NameSALES
Boston700
New York
Los Angeles1800
San Diego250

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 © 2014   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