Pouvez-vous m'expliquer ce qu'est un 'join' en SQL et son utilité dans le développement web ?

PlombierZen - le 22 Février 2025
Bonjour à tous, Je me demandais si quelqu'un pouvait m'expliquer concrètement ce qu'est un 'join' en SQL. Je comprends l'idée de base de combiner des données de différentes tables, mais j'aimerais bien avoir des exemples clairs de son utilisation dans un contexte de développement web. Par exemple, comment on s'en sert pour afficher des infos provenant de plusieurs tables sur une page web ? Y a-t-il des types de 'join' plus courants que d'autres ? Merci d'avance pour vos lumières !
Commentaires (9)
Super, merci pour ces explications claires et les exemples concrets. C'est beaucoup plus clair maintenant !
Salut PlombierZen, Quand tu parles d'afficher des infos provenant de plusieurs tables sur une page web, tu as un exemple en tête ? Genre, est-ce que tu penses à un type d'information spécifique que tu aimerais récupérer et afficher ? Ça pourrait aider à illustrer l'utilisation des JOINs dans un cas concret.
TChalla, oui, par exemple, j'imagine un site e-commerce où on voudrait afficher la liste des produits, avec pour chaque produit, le nom du produit (table 'produits') et le nom du fournisseur (table 'fournisseurs'). L'info du fournisseur est dans une autre table. Comment on ferait ça proprement avec un JOIN ?
Un truc du genre : SELECT produits.nom, fournisseurs.nom FROM produits INNER JOIN fournisseurs ON produits.fournisseur_id = fournisseurs.id; C'est l'exemple typique, quoi.
LagerthaLaViking39 a parfaitement résumé l'affaire. C'est la base de la base pour un site e-commerce. Juste pour compléter, n'oublie pas que tu peux avoir besoin de LEFT JOIN ou RIGHT JOIN si tu veux afficher tous les produits même si certains n'ont pas encore de fournisseur renseigné, ou l'inverse. Ca dépend vraiment de ce que tu veux afficher, mais c'est bon de le savoir. Le INNER JOIN ne te montrera que les produits qui ont un fournisseur correspondant.
PlombierZen a raison, bien cerner le type de JOIN est
Langage SQL #04: Introduction l'opération Jointure[/video] hyper important. Cette vidéo explique bien les bases de l'opération de jointure si jamais tu veux creuser un peu plus.
Bon, j'ai testé le coup du INNER JOIN pour afficher les produits avec le nom du fournisseur. Nickel, ça marche impec ! Par contre, comme PlombierZen l'avait souligné (oui, c'est moi !), j'ai aussi regardé du côté des LEFT JOIN. Effectivement, c'est bien pratique pour afficher tous les produits, même ceux sans fournisseur associé pour le moment. Merci pour le tuyau et la vidéo, AppSurge, ça m'a aidé à bien comprendre les différentes options.
Si tu veux aller plus loin que le INNER et LEFT JOIN, pense au FULL OUTER JOIN. C'est moins courant sur les sites e-commerce classiques, mais ça peut servir dans d'autres contextes. Par exemple, si tu as une table de clients et une table de commandes, et que tu veux voir tous les clients (même ceux qui n'ont pas commandé) et toutes les commandes (même celles qui n'ont pas de client associé), le FULL OUTER JOIN est ton ami. Ça te permet d'identifier les 'orphelins' des deux côtés, et potentiellement de nettoyer ta base de données ou de relancer des clients inactifs. Mais attention, c'est parfois gourmand en ressources, donc à utiliser avec parcimonie.
Le FULL OUTER JOIN, c'est un peu comme chercher les chaussettes orphelines dans le tiroir, non ? 😂 Sinon, pour revenir au sujet initial, une autre utilité des JOINs, c'est pour les systèmes de commentaires. Tu peux joindre la table des commentaires avec celle des utilisateurs pour afficher le nom de l'auteur du commentaire. C'est un grand classique.