Wie können Sie alle möglichen Eltern- und Kinderzeilen mit einer bestimmten ID identifizieren?Möchten Sie alle möglichen übergeordneten und untergeordneten Zeilen mit spezifischer ID kennen?
z.B. haben folgende Tabelle:
MyTable:
-----------------------------------------------------
| Id | PId | Description |
-----------------------------------------------------
| 1 | NULL | A is Parent |
| 2 | 1 | B is Child of A |
| 3 | 2 | C is Child of B |
| 4 | NULL | D is Parent |
| 5 | NULL | E is Parent |
| 6 | 5 | F is Child of E |
-----------------------------------------------------
wollen alle möglichen Eltern und Kind wissen, wann Pass spesific id
z.B.
CASE-01:
Wenn @ MyLookupId = 2 OR @ MyLookupId = 1 OR @ MyLookupId = 3 Einer von ihnen sollte einem Ergebnis führen,
-------
| Id |
-------
| 1 |
| 2 |
| 3 |
-------
CASE-02:
Wenn @ MyLookupId = 4 dann Ergebnis Sollte
-------
| Id |
-------
| 4 |
-------
CASE-03:
Wenn @ MyLookupId = 6 Dann sollte Ergebnis sein,
Hierist SQL für die Tabelle:
IF OBJECT_ID('tempdb.dbo.#MyTable', 'U') IS NOT NULL DROP TABLE #MyTable;
SELECT * INTO #MyTable FROM (
SELECT (1)Id, (NULL)PId, ('A IS Parent')Description UNION ALL
SELECT (2)Id, (1)PId, ('B IS Child of A')Description UNION ALL
SELECT (3)Id, (2)PId, ('C IS Child of B')Description UNION ALL
SELECT (4)Id, (NULL)PId, ('D IS Parent')Description UNION ALL
SELECT (5)Id, (NULL)PId, ('E IS Parent')Description UNION ALL
SELECT (6)Id, (5)PId, ('F IS Child of E')Description) AS tmp
SELECT * FROM #MyTable
Wo gibt es 1 Kind von ' 6 'sagen '7'. Jetzt für lookupid = 5, willst du auch dieses Kind? – Utsav
5 ist Eltern und 6 ist ein Kind von 5 ja ja beide sollten im Ergebnis sein. – Haseeb
Verwenden Sie CTE mit Ebenen zur Position zu identifizieren ... es gibt eine Reihe von CTE Fälle hier oder die grundlegende CTE – maSTAShuFu