sql server 递归查询数据的一段代码,供朋友们学习参考。
alter PROCEDURE search_title_by_infotype ---根据分类查主题
@类别ID int
as
begin
declare @id int
set @id=@类别ID;
with temp(idCategory,categoryRoot) --递归法
as(
select 类别ID,根类别
from dbo.主题类别表
where 根类别=@id
union all --Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序Union All,对两个结果集进行并集操作,包括重复行,不进行排序;
select 类别ID,根类别
from dbo.主题类别表
inner join temp on temp.idCategory=根类别
)
select * from temp
end
select * from dbo.论坛_主题表
inner join dbo.主题类别表 on 类别ID=类别
where 类别ID in
(select idCategory from temp
union all
select @类别ID
)
end