2

Moduleというテーブルがあります。テーブル構造は次のようなものです。

ModuleID     ModuleName        ParentID

   1            System Manage       0
   2            Database Manage     1
   3            Area Manage         1
   4            Basic Setting       0

以下の結果をSQLステートメントで取得したいと思います。

   ModuleID       ModuleName        ParentMoudle
     1               System Manage      0
     2               Database Manage    System Manage
     3               Area Manage        System Manage 
     4               Basic Setting      0

私はSQL初心者です。ありがとうございました!

4

2 に答える 2

1

親子関係は、LEFTOUTERJOINと同じテーブルのクエリによって実現できます。

      select m.moduleid,m.modulename,COALESCE(p.modulename,0) from table as m
      left outer join table as p on m.moduleid = p.module.id
于 2012-08-01T08:14:07.320 に答える
0

これはうまくいくはずです:

;WITH Tree AS
(
    SELECT *, CAST(NULL AS VARCHAR(25)) AS ParentName
      FROM @TT
     WHERE ParentID IS NULL
    UNION ALL
    SELECT Fam.*,Tree.ModuleName AS ParentName
      FROM @TT AS Fam
     INNER JOIN Tree
        ON Fam.ParentID = Tree.moduleID
)
SELECT * FROM Tree
于 2012-08-01T08:27:16.570 に答える