Mehrere Tabellenverknüpfung mit MySQL LEFT JOIN
In diesem Szenario stehen wir vor der Herausforderung, drei Tabellen zu verknüpfen: 'Personen' , 'Ängste' und 'Person_Angst'. Das Ziel besteht darin, alle Datensätze aus der Tabelle „Personen“ zusammen mit allen zugehörigen Ängsten anzuzeigen, auch wenn einige Personen keine Ängste haben.
Zunächst versucht die bereitgestellte LEFT JOIN-Abfrage, „Person_Fear.PersonID“ mit „ Person_Fear.FearID‘, was zu falschen Ergebnissen führt. Der richtige Ansatz besteht darin, 'Person_Fear' mit 'Persons' und 'Fears' basierend auf den richtigen Fremdschlüsselbeziehungen zu verbinden.
Lösung:
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
Diese überarbeitete Abfrage verknüpft effektiv „Personen“. 'Person_Fear' und 'Fears' über ihre jeweiligen Fremdschlüssel. Der LEFT JOIN zwischen „Persons“ und „Person_Fear“ stellt sicher, dass alle Datensätze aus der Tabelle „Persons“ einbezogen werden, unabhängig davon, ob mit ihnen Ängste verbunden sind.
Alternative Lösung:
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
Dieser alternative Ansatz nutzt einen INNER JOIN zwischen „Person_Fear“ und „Fears“, um nach den relevanten Ängsten zu filtern. Der anschließende LEFT JOIN mit „Persons“ sorgt weiterhin dafür, dass alle Personen in die Ergebnisse einbezogen werden.
Das obige ist der detaillierte Inhalt vonWie verbinde ich drei Tabellen in MySQL mithilfe von LEFT JOIN korrekt, um alle Personen und ihre damit verbundenen Ängste abzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!