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

sql语句中如何实现递归查询?
我有两张表:      
    产品表products:      
    productsID           //产品编号
    productname           //产品名称      
    ProductTypeID   //所属类型编号    
       
    产品类型表ProductType:      
    ProductTypeID         //类型编号    
    TypeName                   //类型名称      
    ParentID                   //上级类型编号      
    Level                         //层次
    ProductKey               //类型标识    

在ProductType表中通过ProductTypeID         (上级产品编码)实现类型的所属关系和层次划分,分类型根类标识是“0”      
    假设有产品类型的层次如下:      
       
    产品类型a      
                        产品类型a1      
                                            产品类型a11      
                                            产品类型a12      
                                            产品类型a13      
                        产品类型a2      
                                            产品类型a21      
                                                            产品类型a211      
                                            产品类型a22      
                                            产品类型a23      
   
     
我现在想查询产品类型a   中的所有产品如何在一个sql语句中查出来?  


------解决方案--------------------
要用一个中间表;

用存储过程递归将结果插入中间表.
------解决方案--------------------
在SQL SERVER 2000 中你可以先一些自定义函数,或一些存储过程,实现递归。应该能够解决问题。
------解决方案--------------------
不知道你的分类ID是不是有规律,如果子类ID是在父类ID下加了一串的话,比如PID = A,CID=A01

你可以这样吧SELECT ......WHERE ProductTypeID like 'A% '

或者定级 SELECT ......WHERE ProductTypeID like 'A__ '

以上语句跟设计有关
------解决方案--------------------
select level,TypeName
from ProductType t