Cours SQL et MySQL · Module 7: Joindre des tables (JOIN)
RIGHT JOIN - l'image miroir
Dans cette leçon3
Le pont peut aussi être traversé dans l'autre sens. RIGHT JOIN est l'image miroir de LEFT JOIN.
Ce que fait RIGHT JOIN
A RIGHT JOIN B garde toutes les lignes de la table du côté droit (B), et de la gauche (A) il n'ajoute que les lignes correspondantes. Là où il n'y a pas de paire - NULL à gauche.
1SELECT a.nazwisko, k.tytul
2FROM ksiazki k
3RIGHT JOIN autorzy a ON k.autor_id = a.id;Cela montrera tous les auteurs, même ceux qui n'ont pas encore un seul livre sur le rayon. La table de droite (autorzy) est « protégée » : aucune de ses lignes ne disparaîtra.
RIGHT JOIN est un LEFT JOIN inversé
En pratique, LEFT JOIN est utilisé plus souvent. Chaque RIGHT JOIN peut être transformé en LEFT JOIN en échangeant les tables :
1-- ces deux requêtes donnent le même résultat
2SELECT a.nazwisko, k.tytul
3FROM ksiazki k RIGHT JOIN autorzy a ON k.autor_id = a.id;
4
5SELECT a.nazwisko, k.tytul
6FROM autorzy a LEFT JOIN ksiazki k ON k.autor_id = a.id;Ce qui était à droite, nous le mettons à gauche - et cela reste « protégé » de la même façon. C'est pourquoi de nombreux scribes s'en tiennent uniquement à LEFT JOIN, « protégeant » toujours la table écrite en premier.
Retiens
- LEFT JOIN - protège la table de gauche (
FROM). - RIGHT JOIN - protège la table de droite (
JOIN).
Les deux ajoutent NULL là où il n'y a pas de paire. Le choix ne dépend que du côté que nous voulons garder en entier.
Tu as repéré une erreur dans cette leçon ?
Teste tes connaissances
Réponds aux questions de cette leçon. Choisis une réponse pour voir tout de suite si elle est correcte.
1. En quoi RIGHT JOIN diffère-t-il de LEFT JOIN ?
2. Comment obtenir le même résultat qu'un RIGHT JOIN en utilisant seulement LEFT JOIN ?
Tâches pratiques dans le jeu
- Éditeur de code
Écris une requête qui affiche le nazwisko de l'auteur et le tytul de son livre. Utilise RIGHT JOIN pour que les auteurs sans livre soient affichés aussi. Alias : ksiazki k, autorzy a, condition k.autor_id = a.id.
- Tri horizontal
Ordonne sur une ligne la clause RIGHT JOIN correcte qui joint la table autorzy (de gauche à droite) :
- Clique dans l'ordre
Clique sur les éléments dans l'ordre pour construire une requête avec LEFT JOIN qui joint czytelnicy avec wypozyczenia :
- Éditeur de code
Écris une requête qui affiche le nom de la catégorie (nazwa) et le tytul du livre. Utilise RIGHT JOIN pour que toutes les catégories soient affichées. Alias : ksiazki k, kategorie kat, condition k.kategoria_id = kat.id.