日期:2014-05-19  浏览次数:20516 次

SQL 递归查询请教
最近做的项目,遇到如下问题:

我有一个表:Dept     简单举例如下
ID,   Name,   ParentId
1       a           0
2       b           1
3       c           1
4       d           1
5       b01       2
6       b0101   5
7       c01       3
8       c0101   7
9       d01       4
10     d0101   9

还有一个Msg   表,其中有个字段是Varchar类型   存储的是有权限看的部门ID
如下
ID     Name     Depts
1       msg       2,4
2       msg       3

我有一个Staffer   表
其中有个Dept字段是Staffer对应的部门


现在我要做个查询,
就是查询某个Staffer对应的Msg表

意思就是Msg里面存储的部门,只要Staffer的Dept字段是其或是其
子部门(子子部门...递归)就有权限,

如staffer   对应   dept   为6,
那么Msg   中字段只要包含1,2,5,6(即dept为6的父部门--祖部门的   都可以查看到

这样的查询语句我该怎么写?

请教高手


------解决方案--------------------
如staffer.deptid 为6的时候
===对应:参数6,dbo.f_tb(6)