Maîtriser les jointures sur 3 tables ou plus
Dans les applications réelles, il est courant de joindre 3, 4 ou même plus de tables pour obtenir une vue complète des données.
Chaque jointure ajoute une couche d'information supplémentaire au résultat.
L'ordre des jointures est important pour la lisibilité et parfois pour les performances :
SELECT colonnes
FROM table_principale
JOIN table2 ON condition1
JOIN table3 ON condition2
JOIN table4 ON condition3;
Commencez par la table principale (celle qui contient les données centrales) puis ajoutez les tables complémentaires.
SELECT e.nom, e.prenom, d.dept_nom, l.ville, p.nom_pays
FROM EMPLOYES e
INNER JOIN DEPARTEMENTS d ON e.dept_id = d.dept_id
INNER JOIN LOCALISATIONS l ON d.localisation_id = l.localisation_id
INNER JOIN PAYS p ON l.pays_code = p.pays_code;
Cette requête traverse 4 tables pour afficher l'employé avec son pays de travail.
On peut mélanger INNER JOIN, LEFT JOIN, RIGHT JOIN dans une même requête :
SELECT e.nom, d.dept_nom, l.ville
FROM EMPLOYES e
LEFT JOIN DEPARTEMENTS d ON e.dept_id = d.dept_id
INNER JOIN LOCALISATIONS l ON d.localisation_id = l.localisation_id;
Combiner jointures et agrégations pour des statistiques complexes :
SELECT p.nom_pays, COUNT(e.employe_id) as nb_employes, AVG(e.salaire) as salaire_moyen
FROM EMPLOYES e
INNER JOIN DEPARTEMENTS d ON e.dept_id = d.dept_id
INNER JOIN LOCALISATIONS l ON d.localisation_id = l.localisation_id
INNER JOIN PAYS p ON l.pays_code = p.pays_code
GROUP BY p.nom_pays
ORDER BY nb_employes DESC;
Cette requête calcule le nombre d'employés et le salaire moyen par pays.
On peut ajouter plusieurs conditions dans ON ou combiner avec WHERE :
SELECT e.nom, m.nom AS manager, d.dept_nom
FROM EMPLOYES e
LEFT JOIN EMPLOYES m ON e.manager_id = m.employe_id
INNER JOIN DEPARTEMENTS d ON e.dept_id = d.dept_id
WHERE e.salaire > 10000
AND d.dept_nom IN ('IT', 'Sales');
Parcourir toute la chaîne EMPLOYES → DEPARTEMENTS → LOCALISATIONS → PAYS
Tous les employés avec département (LEFT), mais seulement ceux avec localisation (INNER)
Nombre d'employés et salaire moyen par pays
Employé, manager, département, ville et pays
Employés bien payés en Europe avec leur hiérarchie