0

如何使用 SQL Server 实现以下目标?我正在尝试在 Sitefinity 中获取页数。

表结构有很多列,但下面是重要的列

**Id**                  **parentid**                **title**
 ABC                        DEF                     title1
 XYZ                        DEF                     title2
 LLL                        DEF                     title3
 PPP                        ABC                     title4
 III                        ABC                     title5
 WWW                        PPP                     title6

一个页面可以有子页面,一个子页面可以有更多的子页面。在数据库中,子页面用 ID 列表示,父页面用 parentID 表示。我怎样才能得到每个父母的孩子人数?

4

2 回答 2

0

如果我理解正确,这样的事情应该让你开始:

select id as parent,
       title as title,
       count(*) as number_children
  from table as parent
 inner join table as children
    on children.parentid = parent.id
 group by 1,2
于 2012-09-26T20:17:22.583 回答
0

我从另一个线程得到了答案:SQL Server 2005 中的分层查询

  WITH Parent AS
(
    SELECT
        ID,
        ParentID,
        Name AS Path
    FROM
        tblHierarchy
    WHERE
        ParentID IS NULL

    UNION ALL

    SELECT
        TH.ID,
        TH.ParentID,
        CONVERT(varchar(128), Parent.Path + '/' + TH.Name) AS Path
    FROM
        tblHierarchy TH
    INNER JOIN
        Parent
    ON
        Parent.ID = TH.ParentID
)
SELECT * FROM Parent
于 2012-10-04T20:56:14.983 回答