Jointure
Ce sont les jointures qui font la puissance des bases de données. Elles permettent d'associer des lignes de table différentes dans des requêtes.
Exemple
Nous avons une correspondance entre nos deux tables grâce à la clé étrangère id_film qui fait le lien entre les citations et leur film. Il n'est néanmoins pas pratique de devoir regarger le film de la citation dans une autre table. Pour que tout s'affiche en une seule fois nous allons utiliser une jointure :
SELECT texte, titre FROM citations JOIN films ON citations.id_film = films.id_film;
Cette requête renvoie alors la table suivante (avec votre citation en plus) :
+--------------------------------------------------------------------------------------------------+-------------------------------------------+
| texte | titre |
+--------------------------------------------------------------------------------------------------+-------------------------------------------+
| Vers l'infini et au-delà ! | Toy Story |
| Allez bonne nuit, et tâche de dormir sinon je vends tout tes jouets ! | Avengers : Endgame |
| Avengers rassemblement ! | Avengers : Endgame |
| La fin fait partie du voyage. | Avengers : Endgame |
| C'est dans ses rêves que l'homme trouve la liberté, cela fut, est, et restera la vérité. | Le cercle des poètes disparus |
| C'est seulement quand on a tout perdu qu'on est libre de faire tout ce qu'on veut. | Fight Club |
| On a frôlé la vie ! | Fight Club |
| Monsieur, quand le doigt montre le ciel, l'imbécile regarde le doigt. | Le fabuleux destin d'Amélie Poulain |
| Ou tu sors ou je te sors, mais faudra prendre une décision. | Dikkenek |
| Ce n'est pas parce que tu as une personnalité que tu as de la personnalité. | Pulp Fiction |
| C'est à une demi-heure d'ici. J'y suis dans dix minutes. | Pulp Fiction |
| Je préfère partir plutôt que d'entendre ça plutôt que d'être sourd ! | La classe américaine |
| Raté, vous nous avez raté ! Eh les romains, vous êtes des romaines ! | Astérix et Obélix : mission Cléopâtre |
| À mon signal, déchaine les enfers. | Gladiator |
| Cours Forrest, cours ! | Forrest Gump |
+--------------------------------------------------------------------------------------------------+-------------------------------------------+
15 rows in set (0.00 sec)
Elle se décompose comme ceci :
SELECT
: désigne les champs que l'on veut afficher ;FROM
: désigne la première table (on dira celle de gauche) ;JOIN
: désigne la deuxième table (on dira celle de droite) ;ON
: désigne les deux clés avec lesquels il faut faire la jointure.
La jointure fait alors correspondre les éléments des deux tables qui ont le même id_film.
1) Proposez et testez une requête affichant les citations, films et années pour les films avant les années 2000.
Il est possible d'effectuer plusieurs jointures en rajoutant des clauses JOIN … ON …
.