asp网站,栏目为无限级分类,现在知道某一栏目的id,
需要搜索到其下级(包括下级的下级...)所有的文章,sql语句怎么写,假设栏目表名tablename,字段:sortid,pid,sortname,分别为栏目id,上级i...
需要搜索到其下级(包括下级的下级...)所有的文章,sql语句怎么写,假设栏目表名tablename,字段:sortid,pid,sortname,分别为栏目id,上级id,栏目名称,文章表名:tablearc,字段 arcid,arcpid,arcname,分别为文章id,所属栏目id,文章标日名称
展开
1个回答
展开全部
这个你的栏目表需要增加一个字段专门记录级层关系如pidstr为字符型
每添加一个分类,就计算一下pidstr上级所有关系如:
sortid,pid,pidstr,sortname
1 0 ,0, dddd
2 1 ,1, ccccc
3 2 ,1,2, bbbb
4 3 ,1,2,3, eeee
select * from tablearc where arcpid in(select sortid from tablename where pidstr like '%,"&pid&",%')
pid为上级ID需要接收到然后转递进入!注意pidstr的逗号
我在做项目涉及到这类都是用这样!我做一个直销模块就是用这个!这样性能应该比较用程序来循环算出分类ID会更好!简洁明了!
如果是要列出所有上级,就读取pidstr,列出这些分类ID就行!
每添加一个分类,就计算一下pidstr上级所有关系如:
sortid,pid,pidstr,sortname
1 0 ,0, dddd
2 1 ,1, ccccc
3 2 ,1,2, bbbb
4 3 ,1,2,3, eeee
select * from tablearc where arcpid in(select sortid from tablename where pidstr like '%,"&pid&",%')
pid为上级ID需要接收到然后转递进入!注意pidstr的逗号
我在做项目涉及到这类都是用这样!我做一个直销模块就是用这个!这样性能应该比较用程序来循环算出分类ID会更好!简洁明了!
如果是要列出所有上级,就读取pidstr,列出这些分类ID就行!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询