考虑三个表:
目的是显示所有个人以及与他们相关的任何恐惧(包括一个人没有恐惧的情况)
提供的查询显示了错误的连接表架构:
SELECT persons.name, persons.ss, fears.fear FROM persons LEFT JOIN fears ON person_fear.personid = person_fear.fearid
ON 子句错误地尝试连接 Person_Fear 表PersonID 而不是 FearID,它是连接到 Fears 的列。
要有效地执行左连接,请考虑以下方法:
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
说明:
替代方案查询:
获得相同结果的另一种方法是:
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
此查询使用两个左连接来连接表,产生类似的结果。
以上是如何高效地对三个表执行 MySQL LEFT JOIN?的详细内容。更多信息请关注PHP中文网其他相关文章!