Les jointures représentent des relations entres les tables (ou même vues) d’une base de données (ou même plusieurs bases de données). Elles sont utilisées essentiellement pour optimiser les interrogations en raffinant les résultats.
Les jointures sont de plusieurs types : inner join, left join, right join, jointure externe … sur cet article je reviens essentiellement sur deux types que je qualifie par « jointures oubliées » vu que beaucoup de personnes les oublient (même des DBA) et qui sont les jointures gauche et droite. Mais avant tout il sera intéressant de revenir sur les jointures équivalentes afin de voir la différence entre les résultats des différentes requêtes.
Pour commencer voici une représentation de la base de données qu’on va utiliser durant cet article.
Le script des tables de la base est disponible ici.
INNER JOIN
Représente la jointure par défaut entre les tables, je dirais aussi la plus utilisée. Inner join donne un résultat qui représente les enregistrements de chaque table reliées par la condition de jointure.
Exemple :
Résultat :
Remarque :
La même requête peut s’écrire de la manière suivante :
LEFT JOIN
Le résultat d’une jointure Left join entre deux tables A et B représente tous les enregistrements de la table A (gauche), même si la condition de jointure ne trouve aucune correspondance dans la table B. Les colonnes de la table B seront représentées par des valeurs nulles.
Exemple :
Résultat :
RIGHT JOIN
Ressemble à left join sauf que les rôles sont inversés, donc le résultat d’une jointure right join entre deux tables A et B représente tous les enregistrements de la table B (droite), même si la condition de jointure ne trouve aucune correspondance dans la table A. Les colonnes de la table A seront représentées par des valeurs nulles.
Exemple :
Résultat :
we had this one @ school this year !
Don’t forget it, and be sure that you will need it 😉
this i use