Aller au contenu principal

RIGHT JOIN

Petite vérification​

Avant de commencer, vérifiez si vous savez...

  1. sur les tables livre et genre, écrire une requête LEFT JOIN ... ON T1.id_genre = T2.id, et vérifier que tous les livres apparaissent dans le résultat, y compris ceux qui n'ont pas de genre
  2. expliquer ce qui est retourné pour un livre sans genre avec ce LEFT JOIN
  3. donner l'autre nom de LEFT JOIN
📌 Réponse attendue

3ème type de jointure "RIGHT JOIN"​

astuce

La jointure RIGHT JOIN est également appelée RIGHT OUTER JOIN.

SELECT * FROM livre AS T1 RIGHT JOIN genre AS T2 ON T1.id_genre = T2.id;

RIGHT JOIN fait la même chose que LEFT JOIN, mais elle retourne toute la table T2 au lieu de T1 !

  • La 1ère table de la requête est considérée comme la table de gauche = livre.
  • La 2ème table de la requête est considérée comme la table de droite = genre.

SELECT * FROM livre AS T1 RIGHT JOIN genre AS T2 ON T1.id_genre = T2.id;

Dans notre exemple, cela retournera tous les genres avec les livres qui sont classés dans ce genre, mais également tous les genres qui n'ont pas de livres !

SELECT * FROM livre AS T1 RIGHT JOIN genre AS T2 ON T1.id_genre = T2.id;

Exercice​

Bonne pratique - Préférer LEFT JOIN à RIGHT JOIN

RIGHT JOIN peut toujours être réécrit en LEFT JOIN en inversant l'ordre des tables. FROM livre RIGHT JOIN genre ≡ FROM genre LEFT JOIN livre La plupart des développeurs préfèrent LEFT JOIN par convention — la table "principale" est à gauche.


Test de mémorisation/compréhension​


Qu'est-ce qu'une jointure RIGHT JOIN en SQL ?


Que signifie le terme 'RIGHT' dans 'RIGHT JOIN' ?


Qu'arrive-t-il si un genre n'a pas de livre avec une jointure RIGHT JOIN entre les tables 'livre' et 'genre' ?


Qu'arrive-t-il si un livre n'est attribué à aucun genre avec une jointure RIGHT JOIN entre les tables 'livre' et 'genre' ?


Quelle est la différence entre LEFT JOIN et RIGHT JOIN ?



📌 Une solution