У меня есть chartTable
с 2 столбцами:
ChildPersonID | ParentPersonID
--------------+-----------------
1 | 2
1 | 3
2 | 4
То, что объединено с personTable
двумя столбцами:
ID | PersonName
---+-----------------
1 | a
2 | b
3 | c
4 | d
Я хочу выбрать запрос, который заполняет данные с PersonName, который отображается в виде дерева
Результат:
parentname | parentid | childname | childid
-----------+----------+-----------+---------
a | 1 | b | 2
a | 1 | c | 3
b | 2 | d | 4
мой код
DECLARE @Table1 TABLE (ChildPersonID INT,ParentPersonID INT)
DECLARE @Table2 TABLE (ID INT, PersonName VARCHAR(10))
INSERT INTO @Table1 VALUES (1,2),(1,3),(2,4)
INSERT INTO @Table2 VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d')
SELECT T3.PersonName AS parentName, T1.ChildPersonID AS ParentId,
T2.PersonName AS childname, T1.ParentPersonID AS childid
FROM @Table1 T1
INNER JOIN @Table2 T2 ON T1.ParentPersonID = T2.Id
INNER JOIN @Table2 T3 ON T2.ChildPersonID = T3.id