포럼 게시물을 저장하는 SQL 테이블이 있습니다. 각 레코드에는 다른 레코드의 ID 인 ParentID가 있습니다. null 인 경우는 메인 포럼 스레드이므로 상위 레코드가 없습니다. 모든 게시물에는 여러 수준의 하위 항목이있을 수 있습니다. 나는 효율적으로 자식 레코드를 통해 마지막으로 생성 된 레코드를 찾는 함수를 찾고있다. 각 레코드는 'Created'필드를 가지고있다.가장 효율적인 방법으로 계층 구조 테이블의 마지막 레코드를 찾습니다.
특정 부모에게 속한 레코드를 나열하는 저장 프로 시저가 있지만 매우 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
);
당신이 재귀 쿼리를 시도? 여기 예가 있습니다 : http://technet.microsoft.com/en-us/library/ms186243(v=sql.105).aspx –
주어진 ForumThreadID * 아래에서 마지막으로 생성 된 *을 의미한다고 가정합니까? – Bohemian
Youbody right @Bohemian – Osprey