Dies ist meine Tabelle:SQL Server Eltern Kind (Eltern alles sehen)?
EmployeeID Employee ManagerID
---------------------------------
1 Anna 5
2 John 4
3 Steve 4
4 Lisa 1
5 Adam NULL
6 Per 1
Es ist kein Problem für mich mit einem selbst verbinden wie diese Eltern und Kind-Beziehung zu erhalten:
SELECT
E.EmployeeID,
E.Employee AS Employee,
E.ManagerID,
M.Employee AS Manager
FROM
Employee AS E
LEFT JOIN
Employee AS M ON E.ManagerID = M.EmployeeID
EmployeeID Employee ManagerID Manager
1 Anna 5 Adam
2 John 4 Lisa
3 Steve 4 Lisa
4 Lisa 1 Anna
5 Adam NULL NULL
6 Per 1 Anna
jedoch Wie würde ich machen gehen über zu sicher, dass die Eltern die gesamte Hierarchieebene sehen?
ich die Tabelle wie folgt aussehen würde:
EmployeeID Manager Employee EmployeeID
5 Adam Anna 1
5 Adam Per 6
5 Adam Lisa 4
5 Adam John 2
5 Adam Steve 3
1 Anna Per 6
1 Anna Lisa 4
1 Anna John 2
1 Anna Steve 3
4 Lisa John 2
4 Lisa Steve 3
Hinweis: in diesem Beispiel habe ich nur 3 Stufen der Krippe, aber es kann viel mehr
SQL Server einen hierarchyid Typ für diese hat. –
Ein alternativer Ansatz ist die Verwendung eines [rekursiven CTE] (https://technet.microsoft.com/en-us/library/ms186243%28v=sql.105%29.aspx?f=255&MSPPError=-2147217396). Je nach Anzahl der Datensätze und der Anzahl der Ebenen ist diese Methode möglicherweise etwas langsam. –
Hi, Ja, ich habe mir rekursive CTE angesehen, aber ich habe nicht ganz verstanden, wie man es benutzt, ohne die Ebenen zu kennen. Hast du ein Beispiel für diese Frage, von der ich ausgehen kann? – Nils