Fragen zum SELF JOIN

N0ACE

Mitglied
Schönen guten Tag zusammen!

Ich habe folgenden Query:

Code:
SELECT b.name AS Bereichsleiter, p.name AS Projektleiter, m.name AS Mitarbeiter
FROM menschen AS b
LEFT JOIN menschen AS p ON b.id = p.vorgesetzter_id
LEFT JOIN menschen AS m ON p.id = m.vorgesetzter_id
WHERE b.name = 'Meier'

Dieser Query zieht die Daten aus eine Tabelle, so dass Mitarbeiter, Projektleiter und Bereichsleiter aufgelistet werden und deren hierarchische Zuordnung:

- Bereichslieter
--- Projektleiter
----- Mitarbeiter

Ich nutze also einen SELF JOIN um so die entsprechenden Personen zu bekommen.

Nun habe ich folgende zwei Fragen:

1) Ist es möglich, einen solchen SELF JOIN rekursiv zu formulieren? Sodass es also auch möglich wäre, neue "Ebenen" innerhalb der Hierarchie zu nutzen, ohne den Query anzupassen?

2) Wie kann ich mir die aktuelle "Hierarchieebene" anzeigen lassen? (z.B. wäre jetzt Mitarbeiter Ebene #3, Projektleier Ebene #2 und Bereichsleiter Ebene #1)


Vielen Dank für eure Hilfe!
 
Was ich noch vergessen habe zu erwähnen: Es wird PHP genutzt, um die Daten aus eine MySQL zu holen. Ist es vielleicht in der "while"-Schleife möglich, die Ebene herauszubekommen?

- Nochmals vielen Dank für die Hilfe
 
zu 1: nicht direkt es sei denn du löst das über eine ServerFunktion da ist es einfacher das in php zu coden.
zu 2: siehe 1 :D

Ne im ernst programmier dir das in php da kannst du dann die Rekursionstiefe ( also die Ebene ) mit ausgeben lassen. Dies ist definitiv einfacher als das im MySql Server als Funktion zu schreiben.

Grüsse bb
 
Zurück