Faire une jointure en SQL : comprendre enfin comment relier plusieurs tables
Apprenez simplement à faire une jointure en SQL pour relier plusieurs tables et récupérer des données liées dans une même requête.
Une jointure SQL, c’est quoi exactement
Une jointure SQL permet de relier plusieurs tables entre elles.
Pourquoi faire ça ?
Parce que dans une base de données bien construite, les informations sont souvent séparées dans plusieurs tables.
Par exemple :
- une table
users - une table
articles
Au lieu de mettre toutes les infos dans une seule grosse table bien chaotique façon sac à dos de dev en fin de sprint, on sépare proprement les données.
La jointure sert donc à récupérer ensemble des informations qui sont liées.
Exemple simple de deux tables
Table users
id | username
1 | Alice
2 | Bob Table articles
id | title | user_id
1 | Mon premier article| 1
2 | SQL c'est cool | 2
3 | Vive PHP | 1 Ici :
users.idest l’identifiant de l’utilisateurarticles.user_idindique quel utilisateur a écrit l’article
Donc :
- Alice a écrit
Mon premier article - Bob a écrit
SQL c'est cool - Alice a aussi écrit
Vive PHP
La jointure la plus courante : INNER JOIN
La jointure la plus utilisée est INNER JOIN.
Elle permet de récupérer uniquement les lignes qui correspondent dans les deux tables.
SELECT users.username, articles.title
FROM articles
INNER JOIN users ON articles.user_id = users.id; Explication simple de cette requête
Cette requête dit :
- prends le
usernamedans la tableusers - prends le
titledans la tablearticles - relie les deux tables quand
articles.user_idest égal àusers.id
Résultat :
Alice | Mon premier article
Bob | SQL c'est cool
Alice | Vive PHP Et là, magie SQL : tu combines les données de deux tables dans une seule requête.
Pourquoi on utilise des jointures
Les jointures sont utiles partout.
Par exemple pour :
- afficher le nom de l’auteur d’un article
- voir quel utilisateur a posté quel commentaire
- relier une commande à un client
- afficher les produits d’une catégorie
Sans jointure, il faudrait faire plusieurs requêtes séparées.
Et franchement, ce serait vite relou.
LEFT JOIN : afficher aussi ce qui n’a pas de correspondance
Parfois, tu veux afficher toutes les lignes d’une table, même si aucune donnée correspond dans l’autre.
C’est là qu’on utilise LEFT JOIN.
SELECT users.username, articles.title
FROM users
LEFT JOIN articles ON articles.user_id = users.id; Cette requête affiche :
- tous les utilisateurs
- même ceux qui n’ont écrit aucun article
C’est pratique si tu veux voir les membres inscrits, même ceux qui n’ont encore rien publié.
Différence entre INNER JOIN et LEFT JOIN
INNER JOIN
- affiche seulement les correspondances
LEFT JOIN
- affiche tout ce qu’il y a à gauche
- ajoute les correspondances quand elles existent
En gros :
INNER JOIN= mode strictLEFT JOIN= mode généreux
Exemple concret dans un site web
Imagine un site avec :
- une table
posts - une table
categories
Chaque article possède une catégorie.
Tu peux faire une jointure pour afficher :
- le titre de l’article
- le nom de la catégorie
SELECT posts.title, categories.name
FROM posts
INNER JOIN categories ON posts.category_id = categories.id; Très pratique pour afficher un blog propre au lieu de jongler avec 12 requêtes comme un boss de cirque.
Attention aux noms de colonnes
Quand deux tables ont une colonne avec le même nom, comme id, il faut préciser la table.
Exemple :
SELECT users.id, articles.id
FROM articles
INNER JOIN users ON articles.user_id = users.id; Sinon SQL peut te regarder de travers et te balancer une erreur.
Conclusion
Les jointures SQL permettent de relier plusieurs tables pour récupérer des données liées dans une seule requête. C’est une notion essentielle pour construire des applications web propres, bien organisées et capables d’afficher des informations complexes sans tout mélanger dans la base de données.
#sql #mysql #jointure #basededonnees #webdev #developpementweb #backend