问题: 书属于某个分类
分类的记录属于其他分类
分类表的内容如下:
pkid |
description |
parentid |
1 |
外语 |
0 |
2 |
计算机 |
0 |
3 |
文学 |
0 |
4 |
程序设计 |
2 |
5 |
C# |
4 |
书表内容如下:
pkid |
categoryid |
bookname |
1 |
2 |
计算机文化 |
2 |
4 |
Java编程思想 |
3 |
5 |
C# 高级编程 |
4 |
1 |
7777 |
5 |
3 |
4444 |
现在根据分类2,应该查询出
计算机文化,Java编程思想,C# 高级编程三本书.
Sp如下:
create proc Pro_QueryBookByCateId
@cateid varchar(10) = '2'
as
begin
create table #T
(
[ID] int,
ParentID int,
[Level] INT
)
declare @s nvarchar(4000)
set @s = N'declare @i int set @i = 1
insert into #T select pkid,parentid,@i from tcategory where pkID='+ @cateid +N'
while @@rowcount<>0
begin
set @i = @i + 1
insert into #t
select
a.pkid,a.parentid,@i
from tcategory a,#t b
where a.parentid=b.id and b.Level = @i-1
end'
exec(@s)
select tbook.pkid,tbook.descriptions
from #T a,tbook
where a.[id]=tBook.categoryid
end