Maîtriser MySQL LEFT JOIN : connecter trois tables
Lorsque vous travaillez avec plusieurs tables dans une base de données MySQL, il est crucial de comprendre comment les joindre efficacement. Un défi courant consiste à relier les enregistrements de trois tables ou plus.
Prenons l'exemple fourni : nous avons trois tables – Persons, Fears et Person_Fear – et l'objectif est d'afficher toutes les personnes ainsi que toutes les peurs associées (ou l'absence de peurs).
Exemple LEFT JOIN incorrect
Le code initial fourni contient une erreur dans la condition LEFT JOIN. La ligne :
ON person_fear.personid = person_fear.fearid
Joint incorrectement Person_Fear.PersonID à Person_Fear.FearID, ce qui n'a aucun sens.
Corriger l'implémentation de LEFT JOIN
Pour correctement rejoindre les tables, nous devons modifier la condition à :
ON Person_Fear.PersonID = Persons.PersonID
Cela lie Person_Fear.PersonID au champ approprié dans la table Personnes.
Syntaxe alternative LEFT JOIN
Une autre approche valide au même LEFT JOIN consiste à utiliser la syntaxe suivante :
LEFT JOIN Person_Fear ON Person_Fear.PersonID = Persons.PersonID LEFT JOIN Fears ON Person_Fear.FearID = Fears.FearID
Cette syntaxe spécifie explicitement le LEFT JOIN entre Persons et Person_Fear, suivi d'un autre LEFT JOIN entre Person_Fear et Fears.
Requête résultante
Avec l'une ou l'autre de ces approches corrigées, la requête renverra tous enregistrements de la table Personnes, même ceux qui n'ont aucune peur associée dans les tables Person_Fear et Fears. Pour chaque personne, il affichera la ou les peurs associées ou NULL si aucune peur n'y est liée.
En comprenant le bon usage de LEFT JOIN, vous pouvez interroger efficacement plusieurs tables et récupérer les résultats souhaités pour les relations de données complexes dans votre base de données MySQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!