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