sql 2008:
在一张表中(类似菜单),根据一个或多个父节点查询出所有自节点(包括子节点下的子节点)。
fid fnumber fname fparent
1 N001 name1
2 N00101 name2 1
3 N002 name3
4 N00201 name4 2
.
.
.
n-1 N0020201 name5 4
n N00202 namen 2
如我需要查出
N001,N002下的所有数据,用一条sql语句???
------解决方案--------------------
WITH tp AS (
SELECT a.* FROM TB WHERE fname IN ('N001','N002')
UNION ALL
SELECT * FROM TB a JOIN tp b ON a.fparent=b.id)
SELECT * FROM tp
------解决方案--------------------
可以
------解决方案--------------------
2005以后就可以用CTE,也就是with
------解决方案--------------------
懒一下,引用1楼得,UP
with在2008中可以用