Les Jointures [SQL]

Produits cartésiens

Lorsqu’une condition de jointures est incorrecte ou tout simplement  omise, un produite cartésien dans lequel sont affichés toues les combinaisons de lignes est généré. Ce produit cartésien tend à produire un nombre important de lignes. C’est pourquoi vous devez ajouter une condition de jointure correcte dans une clause WHERE

Exemple : SELECT  A,B from table1, table2;

 

Les Jointures 

Pour obtenir des données appartenant à différentes tables de la base de données, vous devez utiliser une condition de jointures.  Les lignes d’une table peuvent être reliées aux lignes d’une autre table en fonctions de valeurs communes existant dans des colonnes correspondantes.

Exemple : SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column1 = table2.column2;

Pour joindre n tables entres elles, il faut au minium n-1 conditions de jointures

 

Types de jointures 

  • Equijointure
  • Non-équijointure
  • Jointure externe
  • Auto-jointure

 

1. Une équijointure 

Pour définir le service, par exemple, d’un employé, vous devez comparer la valeur de la colonne DEP_ID de la table EMPLOYES à celles de la colonne DEP_ID de la table DEPARTEMENTS.

La relation entre les tables EMPLOYES ET DEPARTMENTS est appelée équijointure puisque les valeurs de la colonne DEP_ID des deux tables sont égales.

Ce type de jointure implique fréquemment l’utilisation de clés primaires et de clés étrangères. Les équijointures sont appelées jointures simples ou jointures internes.

Exemple : Select a,b,c from employees, departments WHERE employees.dep_id = departements.dep_id;

 

2. Non-équijointures

Une non-équijointure est une condition de jointure contenant un opérateur qui n’est pas un opérateur d’égalité.

3. Jointures externes

C’est d’afficher des enregistrements sans correspondance directe au moyen de jointures externes.

Les jointures externes permettent de visualiser également des lignes qui ne répondent pas à la condition de jointure

Exemple: SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column(+) = table2.column;

Principe de LEFT JOIN et RIGHT JOIN

4. Auto-jointures 

Il se peut que vous ayez besoin de joindre une table à elle-même. Par exemple pour retrouver le nom du manager de chaque employé, vous devez joindre la table EMPLOYEES à elle-même

 

 

shema_sql_jointure