Cours SQL et MySQL · Module 7: Joindre des tables (JOIN)
INNER JOIN - joindre les lignes correspondantes
Dans cette leçon3
Le pont le plus utilisé entre les rayons est INNER JOIN. Il joint deux tables et ne retourne que les paires de lignes qui se correspondent selon la condition donnée.
Syntaxe
1SELECT k.tytul, a.nazwisko
2FROM ksiazki k
3INNER JOIN autorzy a ON k.autor_id = a.id;Nous la lisons ainsi : « Montre le titre et le nom de famille, en prenant chaque livre du rayon ksiazki et en lui attachant son auteur du rayon autorzy - celui dont l'id correspond au autor_id du livre ».
La clause ON - la condition du pont
Le cœur de la jointure est ON. Il indique sur quelle colonne les deux tables doivent se retrouver :
1ON k.autor_id = a.idCela signifie : joindre une ligne de ksiazki avec une ligne de autorzy quand la référence croisée autor_id pointe vers le id de l'auteur. Sans ON, la Bibliothèque ne sait pas comment faire correspondre les parchemins.
Seulement les paires correspondantes
Le mot INNER signifie exactement cela - le résultat ne contiendra que les livres qui ont un auteur assigné et existant. Si un livre avait un autor_id qui n'existe pas sur le rayon autorzy, il disparaîtrait du résultat.
| tytul | nazwisko |
|---|---|
| Iliada | z Jonii |
| Odyseja | z Jonii |
C'est le cas le plus courant : nous voulons voir des données combinées des deux rayons, et seules les paires complètes nous intéressent.
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. Quelles lignes un INNER JOIN de deux tables va-t-il renvoyer ?
2. À quoi sert la clause ON dans une requête JOIN, par exemple ON k.autor_id = a.id ?
Voici 2 des 3 questions de cette leçon. Réponds aux autres dans le jeu.
Tâches pratiques dans le jeu
- Éditeur de code
Écris une requête qui, pour chaque livre, affiche son tytul et le nazwisko de l'auteur. Joins les tables ksiazki (alias k) et autorzy (alias a) avec un INNER JOIN, en faisant correspondre k.autor_id à a.id.
- Tri horizontal
Ordonne sur une ligne la clause qui joint correctement la table autorzy (de gauche à droite) :
- Éditeur de code
Écris une requête qui affiche le tytul d'un livre, le nazwisko de l'auteur et le rok_wydania du livre. Joins ksiazki (alias k) avec autorzy (alias a) grâce à INNER JOIN sur k.autor_id = a.id.