首页 >数据库 >mysql教程 >如何在 MySQL 中高效地 LEFT JOIN 三个表来检索人与恐惧的关系?

如何在 MySQL 中高效地 LEFT JOIN 三个表来检索人与恐惧的关系?

Susan Sarandon
Susan Sarandon原创
2024-12-27 16:46:18880浏览

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

MySQL LEFT JOIN 3 个用于恐惧和人际关系的表

在一组三个关系表中,可以检索完整的人员列表以及任何相关的恐惧。这可以通过涉及“Persons”、“Fears”和“Person_Fear”表的 LEFT JOIN 查询来实现。

“Persons”表保存个人信息,包括“Name”和“SS”(社交信息)安全号),而“恐惧”表列出了潜在的恐惧,而“Person_Fear”表则建立了人们与其恐惧之间的关系。

在之前的尝试中,构造了 LEFT JOIN 查询,但遇到了错误。提供的错误代码是:

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

该错误源于在连接子句中错误地引用“person_fear”两次。相反,连接应根据“PersonID”列将“Persons”连接到“Person_Fear”,并使用“FearID”将“Person_Fear”连接到“Fears”。

这是一个更正的 LEFT JOIN 查询:

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

这个 LEFT JOIN 查询构造一个包含所有人的列表,包括那些没有任何相关恐惧的人。结果集将包含每条记录的“Name”、“SS”和“Fear”列。

或者,以下 LEFT JOIN 查询也可实现相同的结果:

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

通过有效地利用 LEFT JOIN,数据库查询可以从多个表中检索全面且互连的数据。

以上是如何在 MySQL 中高效地 LEFT JOIN 三个表来检索人与恐惧的关系?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn