特定の投稿にコメントしたり、日付順に親のすぐ下に返信を表示したりできるフォーラム設定を作成しようとしています。親の下にはサブレベルが1つだけあります。データセットの例は次のとおりです。
ID.ParentID.Datestamp
12.NULL.2013-03-01 1:00pm
13.NULL.2013-03-01 2:00pm
14.12.2013-03-01 2:20pm
15.12.2013-03-01 2:30pm
16.NULL.2013-03-01 3:30pm
そして、これが私が最終的にしようとしているものです:
12.NULL.2013-03-01 1:00pm
14.12.2013-03-01 2:20pm
15.12.2013-03-01 2:30pm
13.NULL.2013-03-01 2:00pm
16.NULL.2013-03-01 3:30pm
ある種のCTEを実行する必要があることはわかっていますが、これでは適切な親の下に子が順序付けられません(明らかに、ORDER BY句がないため)。正しい順序がわかりませんでした。誰かがいくつかの洞察を提供できますか?
; WITH Messages
AS
(
SELECT ID, ParentID, Datestamp
FROM ForumMessages
WHERE ParentID IS NULL
-- Recursive
UNION ALL
SELECT
t2.ID, t2.ParentID, t2.Datestamp
FROM
ForumMessages AS t2
JOIN Messages AS m ON t2.ParentID = m.ID
)
SELECT ID, ParentID, Datestamp
FROM Messages