【发布时间】:2013-12-10 11:54:12
【问题描述】:
我有一个存储论坛帖子的 SQL 表。每条记录都有一个 ParentID,它是另一条记录的 ID。如果为空,则表示它是主论坛线程,因此没有父记录。每个帖子都可以有多个级别的子级。我正在寻找一种能够有效地通过子记录重复查找最后创建的函数(每条记录都有一个“已创建”字段)。
我确实有一个存储过程,它列出了属于特定父级的记录,但它非常占用 CPU,并且在列出主论坛线程和显示最后回复的日期时无法使用。
如果有帮助,这里是表格的基本结构:
CREATE TABLE [dbo].[ForumThreads](
[ForumThreadID] [numeric](18, 0) IDENTITY(1,1) NOT NULL,
[ForumID] [numeric](18, 0) NULL,
[ParentID] [numeric](18, 0) NULL,
[PostSubject] [nvarchar](500) NULL,
[PostBody] [nvarchar](max) NULL,
[Created] [datetime] NULL,
[CreatedBy] [numeric](18, 0) NULL
);
【问题讨论】:
-
你试过递归查询吗?这是一个例子:technet.microsoft.com/en-us/library/ms186243(v=sql.105).aspx
-
我假设您是指在给定的 ForumThreadID 下创建的最后一个孩子?
-
你猜对了@Bohemian
标签: sql sql-server hierarchy hierarchical-data