> Tech > Syntaxe de base des jointures

Syntaxe de base des jointures

Tech - Par iTPro - Publié le 24 juin 2010
email

On distingue plusieurs catégories de jointures. Une première distinction peut se faire entre equijoint et non-equijoint. Les equijointures sont probablement le type de jointure le plus courant : ce sont tout simplement des jointures combinant des lignes sur une égalité de colonnes. La jointure Customer et Sale décrite ci-dessus est

une equijointure. On devine que les non-equijoints
utilisent une relation d’inégalité entre les colonnes.

Commençons par les equijointures, en les divisant en trois catégories

  • equijointures internes
  • equijointures externes gauches
  • equijointures d’exception

Chacune de ces trois catégories se distingue par la manière dont sont traitées
les lignes correspondantes et non correspondantes, comme l’illustre la figure
4.

La figure 5 contient un exemple de jointure externe gauche. Elle est constituée
de toutes les lignes comprises dans une jointure simple plus chaque ligne
non correspondante dans la première table (Customer dans cet exemple). Notons
dans la figure, que pour chacune de ces lignes non correspondantes, SQL donne
la valeur nulle aux colonnes provenant de la seconde table. Alors que la jointure
simple de la figure 3 donne des informations sur chaque client ayant passé une
commande, la jointure externe gauche donne des informations sur tous les clients,
qu’ils aient commandé ou non.

La figure 6 illustre un exemple de jointure d’exception. Une telle jointure ne
comprend que les lignes non correspondantes de la première table. Dans
mon exemple, j’ai créé une liste de tous les clients n’ayant passé aucune commande.
Notons à  nouveau que SQL donne la valeur nulle aux colonnes provenant de la seconde
table. Bien que je montre les colonnes OrderID et SaleDate dans cet exemple, il
faut savoir qu’en principe on n’inclut pas les colonnes provenant de la
table de droite d’une jointure d’exception, parce qu’elles seront toutes nulles
par définition.

Pourquoi n’y a-t-il pas de jointure externe droite ? Tout simplement parce qu’on
n’en a pas besoin : pour obtenir la table résultat équivalente, il suffit de transposer
les tables gauche et droite et d’utiliser une jointure externe gauche.

Et qu’en est-il d’une jointure externe complète, où l’on inclurait les
lignes non correspondantes provenant des deux tables ? On peut fort bien
utiliser l’opérateur Union de SQL pour combiner deux ensembles de résultats, comme
l’illustre la figure 7. Ici, l’opération Union combine toutes les lignes Customer
(provenant de la jointure externe gauche) et toutes les lignes Sale non correspondantes
(provenant de la jointure d’exception), aboutissant au résultat souhaité.

Téléchargez gratuitement cette ressource

TOP 5 Modernisation & Sécurité des Postes Clients

TOP 5 Modernisation & Sécurité des Postes Clients

Pour aider les entreprises à allier les restrictions liées à la crise et la nécessaire modernisation de leurs outils pour gagner en réactivité, souplesse et sécurité, DIB-France lance une nouvelle offre « Cloud-In-One » combinant simplement IaaS et DaaS dans le Cloud, de façon augmentée.

Tech - Par iTPro - Publié le 24 juin 2010