首页 > 解决方案 > 如何将数据从 SQL 加载到树视图中显示的日期表

问题描述

我有chartTable2 列:

ChildPersonID | ParentPersonID
--------------+-----------------
 1            | 2
 1            | 3
 2            | 4

personTable与 2 列相连:

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

标签: c#sql

解决方案


这是您要查找的查询(尽管您提到的列名令人困惑,但我认为应该颠倒)

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 T1.ChildPersonID = T3.id

推荐阅读