Maison >base de données >tutoriel mysql >Comment puis-je utiliser LEFT JOIN pour récupérer des données sur les personnes et les peurs à partir de trois tables MySQL ?

Comment puis-je utiliser LEFT JOIN pour récupérer des données sur les personnes et les peurs à partir de trois tables MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-24 19:53:10376parcourir

How Can I Use LEFT JOINs to Retrieve Person and Fear Data from Three MySQL Tables?

MySQL LEFT JOIN Trois tables pour les personnes craintives

Pour récupérer une liste d'individus avec leurs peurs associées, vous devez fusionner de manière transparente trois tables interconnectées :

  • Personnes : comprend des informations essentielles sur individus, tels que leur PersonID, Nom et SS (numéro de sécurité sociale).
  • Peurs : listes diverses peurs, chacune assignée à un unique FearID.
  • Person_Fear : sert de pont entre les individus et les peurs, avec ID, PersonID et FearID.

Modification de votre requête LEFT JOIN

Votre tentative initiale de création d'un LEFT JOIN a rencontré un problème. La condition de jointure spécifiée, person_fear.personid = person_fear.fearid, ne correspond pas à la relation souhaitée entre les tables. Pour lier correctement la table Persons à la table Peurs par l'intermédiaire de Person_Fear, utilisez ce code modifié :

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 du modifié La requête

  • LEFT JOIN ​​fusionne la table Persons avec la table Person_Fear, où le PersonID correspond au PersonID correspondant dans Person_Fear. Cela garantit que chaque personne est incluse dans les résultats, même si elle n'a aucune peur associée.
  • Un
  • INNER JOIN ​​relie la table Person_Fear à la Peur Tableau basé sur la colonne FearID. Cette opération récupère uniquement les peurs qui sont explicitement liées aux individus via la table Person_Fear.
  • Les clauses
  • ON garantissent que le PersonID dans la La table Persons correspond au PersonID dans le Person_Fear, qui à son tour correspond au FearID dans la table Fears.

Syntaxe de requête alternative

Une manière alternative d'écrire la requête LEFT JOIN 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 syntaxe est tout aussi efficace pour récupérer les données souhaitées, en utilisant deux LEFT JOIN pour connecter les 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