Considérez trois tables :
L'objectif est d'afficher tous les individus ainsi que toutes les peurs qui leur sont associées (y compris les cas où une personne n'a aucune peur).
La requête fournie présente un schéma incorrect pour joindre des tables :
SELECT persons.name, persons.ss, fears.fear FROM persons LEFT JOIN fears ON person_fear.personid = person_fear.fearid
La clause ON tente de manière incorrecte de joindre la table Person_Fear sur PersonID au lieu de FearID, qui est la colonne qui se connecte à Peurs.
Pour effectuer efficacement une jointure à gauche, considérez ce qui suit approche :
SELECT Persons.Name, Persons.SS, Fears.Fear FROM Persons LEFT JOIN Person_Fear INNER JOIN Fears ON Person_Fear.FearID = Fears.FearID ON Person_Fear.PersonID = Persons.PersonID
Explication :
Requête alternative :
Une autre façon d'obtenir le même résultat est :
SELECT Persons.Name, Persons.SS, Fears.Fear FROM Persons LEFT JOIN Person_Fear ON Person_Fear.PersonID = Persons.PersonID LEFT JOIN Fears ON Person_Fear.FearID = Fears.FearID
Cette requête utilise deux jointures gauches pour connecter les tables, produisant des résultats similaires.
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!