日期:2014-05-16  浏览次数:20654 次

求一条Sql。
现有表book,字段bookType(书籍类型),parent(所属类型),如何查出类型为booktype=【科幻】的所有下级书信息?
当然【科幻】下面还有下级书的也要查询出来。就相当于一棵树父节点是【科幻】下面的所有子节点都要查询出来。
------解决方案--------------------
try this:
create table book(bookType varchar(100),parent varchar(100))

insert into book
select 'xxx','yyy' union all
select '科幻','xxx' union all
select '穿越','科幻' union all
select '古装','穿越'
go

;with t as
(
select * from book as  a where booktype='科幻'
union all
select a.* from book as  a inner join t as b on a.parent=b.booktype 
)

select * from t
/*
bookType parent
科幻 xxx
穿越 科幻
古装 穿越
*/