MySQL LEFT JOIN 3 Tabellen für Angst und Personenbeziehungen
In einem Satz von drei relationalen Tabellen kann man eine umfassende Liste von Personen abrufen zusammen mit allen damit verbundenen Ängsten. Dies kann durch eine LEFT JOIN-Abfrage erreicht werden, die die Tabellen „Persons“, „Fears“ und „Person_Fear“ umfasst.
Die Tabelle „Persons“ enthält persönliche Informationen, einschließlich „Name“ und „SS“ (sozial). Sicherheitsnummer), während die Tabelle „Ängste“ potenzielle Ängste auflistet und die Tabelle „Person_Angst“ die Beziehung zwischen Menschen und ihren Ängsten herstellt.
In einem früheren Versuch wurde a Die LEFT JOIN-Abfrage wurde erstellt, es sind jedoch Fehler aufgetreten. Der falsche Code lautete:
SELECT persons.name, persons.ss, fears.fear FROM persons LEFT JOIN fears ON person_fear.personid = person_fear.fearid
Der Fehler ist darauf zurückzuführen, dass in der Join-Klausel zweimal falsch auf „person_fear“ verwiesen wurde. Stattdessen sollte der Join „Personen“ mit „Person_Fear“ basierend auf ihrer „PersonID“-Spalte und „Person_Fear“ mit „Fears“ mithilfe von „FearID“ verbinden.
Hier ist eine korrigierte LEFT JOIN-Abfrage:
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 LEFT JOIN-Abfrage erstellt eine Liste, die alle Personen enthält, auch solche ohne damit verbundene Ängste. Der Ergebnissatz enthält die Spalten „Name“, „SS“ und „Angst“ für jeden Datensatz.
Alternativ erzielt die folgende LEFT JOIN-Abfrage das gleiche Ergebnis:
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
Durch die effektive Nutzung von LEFT JOINs können Datenbankabfragen umfassende und miteinander verbundene Daten aus mehreren Tabellen abrufen.
Das obige ist der detaillierte Inhalt vonWie kann ich drei Tabellen effizient mit LEFT JOIN verbinden, um Personen-Angst-Beziehungen in MySQL abzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!