Maîtriser la jointure la plus courante
L'INNER JOIN (ou simplement JOIN) est le type de jointure le plus courant. Il retourne uniquement les lignes pour lesquelles il existe une correspondance dans les deux tables jointes.
Si un employé n'a pas de département (dept_id NULL) ou si un dept_id n'existe pas dans la table DEPARTEMENTS, la ligne ne sera pas retournée.
SELECT colonnes
FROM table1
INNER JOIN table2 ON table1.colonne = table2.colonne;
Le mot-clé INNER est optionnel. JOIN seul signifie INNER JOIN par défaut.
SELECT e.nom, e.prenom, d.dept_nom
FROM EMPLOYES e
INNER JOIN DEPARTEMENTS d ON e.dept_id = d.dept_id;
Cette requête affiche chaque employé avec le nom de son département. Seuls les employés ayant un département valide sont affichés.
Les alias (e pour EMPLOYES, d pour DEPARTEMENTS) rendent le code plus lisible et sont obligatoires quand une colonne existe dans les deux tables.
e.nom : colonne nom de la table EMPLOYESd.dept_nom : colonne dept_nom de DEPARTEMENTSOn peut enchaîner plusieurs INNER JOIN pour combiner 3 tables ou plus :
SELECT e.nom, d.dept_nom, l.ville
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;
On peut ajouter des conditions de filtrage avec WHERE après les jointures :
SELECT e.nom, d.dept_nom
FROM EMPLOYES e
INNER JOIN DEPARTEMENTS d ON e.dept_id = d.dept_id
WHERE e.salaire > 10000;
Joindre EMPLOYES et DEPARTEMENTS pour afficher nom et département
Employés du département IT seulement
Employés avec département et ville
Employés avec département, ville et pays
Employés bien payés avec leur localisation