Maison >base de données >tutoriel mysql >Comment puis-je efficacement LEFT JOIN trois tables pour récupérer les relations personne-peur dans MySQL ?

Comment puis-je efficacement LEFT JOIN trois tables pour récupérer les relations personne-peur dans MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-27 16:46:18869parcourir

How Can I Efficiently LEFT JOIN Three Tables to Retrieve Person-Fear Relationships in MySQL?

MySQL LEFT JOIN 3 tables pour les relations de peur et de personne

Dans un ensemble de trois tables relationnelles, on peut récupérer une liste complète de personnes ainsi que toutes les peurs associées. Ceci peut être réalisé via une requête LEFT JOIN impliquant les tables « Personnes », « Peurs » et « Personne_Fear ».

La table « Personnes » contient des informations personnelles, notamment « Nom » et « SS » (social numéro de sécurité), tandis que le tableau « Peurs » répertorie les peurs potentielles et que le tableau « Personne_Peur » établit la relation entre les personnes et leur craintes.

Lors d'une tentative précédente, une requête LEFT JOIN a été construite mais a rencontré des erreurs. Le code incorrect fourni était :

SELECT persons.name, 
       persons.ss, 
       fears.fear 
FROM   persons 
       LEFT JOIN fears 
              ON person_fear.personid = person_fear.fearid 

L'erreur provient d'une référence incorrecte à "person_fear" deux fois dans la clause de jointure. Au lieu de cela, la jointure doit connecter « Personnes » à « Personne_Fear » en fonction de leur colonne « PersonneID » et « Personne_Fear » à « Peurs » en utilisant « FearID ».

Voici une requête LEFT JOIN corrigée :

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 LEFT JOIN construit une liste qui contient toutes les personnes, y compris celles sans aucune peur associée. L'ensemble de résultats comprendra les colonnes « Nom », « SS » et « Peur » pour chaque enregistrement.

Alternativement, la requête LEFT JOIN suivante obtient le même résultat :

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

En utilisant efficacement LEFT JOIN, les requêtes de base de données peuvent récupérer des données complètes et interconnectées à partir de plusieurs tables.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn