当前位置: 代码迷 >> Sql Server >> 获取栏目表中某个栏目下的全部子栏目
  详细解决方案

获取栏目表中某个栏目下的全部子栏目

热度:3   发布时间:2016-04-24 09:42:23.0
获取栏目表中某个栏目下的所有子栏目。

CREATE TABLE [dbo].[Categories](
[ID] [int] IDENTITY(1,1) NOT NULL,
[CategoryName] [nvarchar](100) NOT NULL,
[ParentID] [int] NULL,
[DepartmentID] [int] NULL)


CREATE TABLE [dbo].[ArticleCategories](
[ArticleID] [int] NOT NULL,
[CategoryID] [int] NOT NULL)




比如某个部门id为106
由于程序设计失误,只有parentid 为null,也就是顶级栏目的departmentid 才为106,其他则有可能是超级管理员所在的departmentid.

现在我在存储过程里,要用一个语句列出这个部门下的所有子栏目,用来选出栏目文章



 select distinct a.ID from  Article a
 INNER JOIN ArticleCategories ac ON ac.ArticleID=a.ID  AND  ac.IsQuote=0  
 INNER JOIN Categories c on ac.CategoryID=c.ID AND DepartmentID=@DepartmentID AND c.IsDeleted=0 



以上这个语句达不到我要的结果。需要再把各个顶级栏目下的子栏目文章也加进来
------解决思路----------------------
数据都不正确怎么可能,谁知道谁是谁的栏目,两个需要关联的字段都有问题~~
要处理这个,还得先自己更正好数据
  相关解决方案