Selfjoin auf Personendaten

Hallo Forum,
Ich habe gerade ein Problem mit einer Abfrage bei dem ich irgendwie nicht weiterkomme und hoffe dass mir einer helfen kann.
Ich habe eine Tabelle mit Personendaten.
id_privatperson | vorname | name | id_vater | id_mutter
wobei nun id_vater und id_mutter wieder auf Personen in derselben Tabelle verweist (also stehen da dann eben id_privatpersonen drin)

z.B.
id_privatperson | vorname | name | id_vater | id_mutter
1 | martin | müller | null | null
2 | martina | müller | null | null
3 | max | müller | 1 | 2
4 | melanie | müller | 1 | 2
5…

Ich möchte jetzt jeweils immer die Kinder der einen entsprechenden Person anzeigen lassen bzw. auch vom Kind die Eltern. Aber irgendwie bekomme ich das Statement nicht hin. Kann mir jemand dabei helfen, bitte? ich hoffe ich habe das klar genug formuliert, sonst einfach fragen bitte. Vielen vielen dank schon einmal im Voraus.

SELECT
textcat(textcat(privatpersonen.vorname, text ’ '), privatpersonen.name) AS kind,
textcat(textcat(va.vorname, text ’ '), va.name) AS vater_kind,
textcat(textcat(mu.vorname, text ’ '), mu.name) AS mutter_kind
FROM
privatpersonen
LEFT JOIN privatpersonen va ON (va.id_privatperson = privatpersonen.id_vater)
LEFT JOIN privatpersonen mu ON (mu.id_privatperson = privatpersonen.id_mutter)
LEFT JOIN privatpersonen ki ON (ki.id_privatperson = privatpersonen.id_privatperson)
WHERE
(privatpersonen.id_vater = ki.id_vater) or (privatpersonen.id_mutter = ki.id_mutter)
AND
va.id_privatperson = 1 OR mu.id_privatperson = 1

Mit freundlichem Gruss

Du suchst rekursive Abfragen, my blog