Jointure de plusieurs tables avec MySQL LEFT JOIN
Dans ce scénario, nous rencontrons le défi de joindre trois tables : 'Personnes' , 'Peurs', et 'Person_Fear'. L'objectif est d'afficher tous les enregistrements de la table 'Personnes' ainsi que les peurs associées, même si certaines personnes n'ont aucune peur.
Initialement, la requête LEFT JOIN fournie tente de joindre 'Person_Fear.PersonID' avec ' Person_Fear.FearID', qui donne des résultats incorrects. L'approche correcte consiste à joindre 'Person_Fear' avec 'Persons' et 'Fears' en fonction des relations de clé étrangère appropriées.
Solution :
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 révisée joint effectivement les « Personnes » à 'Person_Fear' et 'Fears' via leurs clés étrangères respectives. Le LEFT JOIN entre 'Persons' et 'Person_Fear' garantit que tous les enregistrements de la table 'Persons' sont inclus, qu'ils aient ou non des peurs associées.
Solution alternative :
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
Cette approche alternative utilise un INNER JOIN entre 'Person_Fear' et 'Fears' pour filtrer jusqu'à les craintes pertinentes. Le LEFT JOIN suivant avec « Personnes » garantit toujours que tous les individus sont inclus dans les résultats.
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!