如何在SQL Server中使用self Join在单个表上映射子级父级?

基兰·沙希(Kiran Shahi)

我有下表与孩子的父母关系。

ID      Title               PageID  IsParent    ParentID    IsActive
1       Dashboard           2125    True        NULL        True
2       Site Analytics      22      False       NULL        True
3       SEO Management      1       NULL        NULL        True
4       Mail Management     32      NULL        NULL        True
5       Build Mobile App    3214    NULL        NULL        True
6       Market Analytics    1321    NULL        NULL        True
7       Customize           235345  NULL        NULL        True
8       Reporter            253     NULL        NULL        True
9       Editor              545     NULL        NULL        True
10      News Template       45      NULL        NULL        True
11      Test Menu           0       True        3           True
NULL    NULL                NULL    NULL        NULL        NULL

这里ParentID定义了父子关系。例如,在上表中,“测试菜单”是的子级Site Analytics我有以下SQL查询。

SELECT
        P.ID
        ,P.Title AS Parent
        ,C.Title AS Child
        ,P.PageID
        ,P.IsParent
        ,P.ParentID
        ,P.IsActive
      FROM [dbo].[ChildParent] P
      LEFT JOIN [dbo].[ChildParent] C ON P.ID = C.ParentID

输出以下结果。

1   Dashboard           NULL            2125    1       NULL    1
2   Site Analytics      NULL            22      0       NULL    1
3   SEO Management      Test Menu       1       NULL    NULL    1
4   Mail Management     NULL            32      NULL    NULL    1
5   Build Mobile App    NULL            3214    NULL    NULL    1
6   Market Analytics    NULL            1321    NULL    NULL    1
7   Customize           NULL            235345  NULL    NULL    1
8   Reporter            NULL            253     NULL    NULL    1
9   Editor              NULL            545     NULL    NULL    1
10  News Template       NULL            45      NULL    NULL    1
11  Test Menu           NULL            0       1       3       1

基本上,我要实现的是:

1   Dashboard           NULL            2125    1       NULL    1
2   Site Analytics      NULL            22      0       NULL    1
3   SEO Management      NULL            1       NULL    NULL    1
4   Mail Management     NULL            32      NULL    NULL    1
5   Build Mobile App    NULL            3214    NULL    NULL    1
6   Market Analytics    NULL            1321    NULL    NULL    1
7   Customize           NULL            235345  NULL    NULL    1
8   Reporter            NULL            253     NULL    NULL    1
9   Editor              NULL            545     NULL    NULL    1
10  News Template       NULL            45      NULL    NULL    1
11  Test Menu           SEO Management  0       1       3       1
想要学习

您正在向后做。

  FROM [dbo].[ChildParent] P
  LEFT JOIN [dbo].[ChildParent] C ON P.ParentID = C.ID

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQL Server 查询以查找在单个表中没有父级和子级的行

AngularJS,如何在父级中使用子级的JSON?

SQL Server CTE获取父级的子级,然后使用父级值更新子级

在 SQL Server 中使用 SELF JOIN 与子查询哪个更好?

选择同一表关系中的所有父级或子级SQL Server

如何在Java中使用AspectJ记录父级和子级的线程ID

如何在php中使用动态父级从数组中获取子级

如何在SQL Server中使用join插入2表?

SQL Server的父级子级(父级查看所有内容)?

如何使用父级div字体颜色代替子级

如何传递要在子组件中使用的父级状态?

如何在SQL Server中使用JOIN执行UPDATE语句?

如何在SQL Server的JOIN中使用COLLATE?

如何在SQL Server中使用INNER JOIN删除?

如何在SQL Server中使用INNER JOIN删除?

如何在 SQL Server 中使用 join 以防万一?

如何在 SQL Server 中使用子查询而不是视图

如何在SQL Server中使用结果集创建表

如何在父级中观察到的子级组件使用EventEmitter(角度2)

如何在Golang中使用并行子测试处理父级测试拆卸

如何使用sql在父级中获取孩子的子级值

如何使用SQL查询在父级和子级之间对表记录进行排序

定义两个SQL Server表(父级到子级列)之间的关系,而无需使用唯一列或键列

使用父级和子级从表中获取值

如何在函数字段中使用父级?

如何在父级布局中使用挖空组件视图?

如何在SQL Server中使用单个查询在多个表中插入数据?

如何在SQL中使用子查询?

如何在SQL Server中使用查找表替换列中的子字符串