使用MySQL LEFT JOIN 進行多表連接
在這個場景中,我們遇到了連接三個表的挑戰: 'Persons' ,「恐懼」,以及「Person_Fear」。目標是顯示「Persons」表中的所有記錄以及任何相關的恐懼,即使有些人沒有恐懼。
最初,提供的 LEFT JOIN 查詢嘗試將「Person_Fear.PersonID」與「連接」 Person_Fear.FearID',會產生不正確的結果。正確的做法是根據正確的外鍵關係將 'Person_Fear' 與 'Persons' 和 'Fears' 連接起來。
解決方案:
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
這個修改後的查詢有效地將「Persons」連接到'Person_Fear' 和'Fears'透過各自的外鍵。 「Persons」和「Person_Fear」之間的 LEFT JOIN 確保包含「Persons」表中的所有記錄,無論它們是否有任何相關的恐懼。
替代解決方案:
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
這個替代方法利用'Person_Fear' 和'Person_Fear' 之間的INNER JOIN 「恐懼」過濾到相關的恐懼。隨後的 LEFT JOIN 與“Persons”仍然確保所有個人都包含在結果中。
以上是如何使用 LEFT JOIN 正確連接 MySQL 中的三個表格來檢索所有人員及其相關的恐懼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!