Exercice 26 / 60

LEFT JOIN

ConsigneAffiche tous les étudiants et le nom de leurs cours, y compris ceux sans inscription (LEFT JOIN au lieu de INNER JOIN). Mêmes tables et alias au choix que l'exercice précédent ; les colonnes du cours valent NULL si l'étudiant n'a aucune inscription.

📖 Cours

left join garde toutes les lignes de la table de gauche, même sans correspondance a droite (les colonnes de droite valent alors null). Syntaxe : from tableA left join tableB ON ...;

LEFT JOIN garde toutes les lignes de la table de gauche, et met NULL à droite pour celles qui n'ont pas de correspondance
LEFT JOIN garde toutes les lignes de la table de gauche, et met NULL à droite pour celles qui n'ont pas de correspondance

Utile pour trouver « qui n'a rien » (ex : clients sans commande) : on garde le left join et on ajoute where cmd.id IS null, pour ne conserver que les lignes où la table de droite n'a rien apporté.

Exemple (clients + commandes) :

SELECT c.nom, cmd.montant FROM clients cLEFT JOIN commandes cmd ON c.id = cmd.client_id;-> tous les clients, avec ou sans commande
SELECT c.nom FROM clients cLEFT JOIN commandes cmd ON c.id = cmd.client_idWHERE cmd.id IS NULL;-> uniquement les clients qui n'ont aucune commande

Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →