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.id est l’identifiant de l’utilisateur
  • articles.user_id indique 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 username dans la table users
  • prends le title dans la table articles
  • relie les deux tables quand articles.user_id est é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 strict
  • LEFT 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