Ich brauche etwas SQL-Hilfe. Ich bin ein Java-Typ von Beruf und ich weiß wirklich nicht einmal, wie man diese Frage stellt. Ich habe 3 Tische, nenne sie Person, Kinder, Freunde. Person ist eine ID und ein Name:SQL Outer Join eine Tabelle mit 2 Tabellen
| id | name |
---------------------
| 1 | Joe |
Lassen Sie sagen, Kinder die gleiche ist, aber mit einem FK zurück zur Person
| id | personId | name |
-------------------------------------
| 1 | 1 | Frank |
| 2 | 1 | Dan |
und Freunde sind die gleiche Sache
| id | personId | name |
-------------------------------------
| 1 | 1 | Will |
| 2 | 1 | Bob |
Offensichtlich ist eine vereinfachte Version meines wirklichen Problems, aber die Struktur ist die gleiche. Ich brauche alle diese Daten in einer SQL-Pull zu ziehen, so dass ich diese zurück
| personId | personName | childId | childName | friendId | friendName
------------------------------------------------------------------------------------------
| 1 | Joe | 1 | Frank | null | null
| 1 | Joe | 1 | Dan | null | null
| 1 | Joe | null | null | 1 | Will
| 1 | Joe | null | null | 2 | Bob
Ich habe versucht, mehrere Techniken verbinden, kann aber nicht scheinen, um es zu knacken. SQL war nie mein bestes Thema. Jetzt bin Parsen ich diese in ein Java-Objekt Person mit Liste <> von Freunden und Kinder so offensichtlich auch dies funktioniert:
| personId | personName | childId | childName | friendId | friendName
------------------------------------------------------------------------------------------
| 1 | Joe | null | null | null | null
| null | null | 1 | Frank | null | null
| null | null | 1 | Dan | null | null
| null | null | null | null | 1 | Will
| null | null | null | null | 2 | Bob
Alles, was eine saubere for-Schleife in meinem Code ermöglicht dies zu bauen.
Danke!
Ich bin kein Experte, aber zwei volle Outer-Joins auf person.id = children.personId und person.id = friends.personId sollte funktionieren. Was hast du probiert und welche Ergebnisse hast du bekommen? – mreff555
@ mref555 dies ist markiert MySQL – Strawberry