日期:2014-05-17  浏览次数:20495 次

求教一个思路的问题
我有一个仓库表
id parentid storagename
1 0 1号仓库
2 1 1.1
3 2 1.1.1
4 0 2号仓库
一个销售信息表
id name storageid number price
1 小麦 3 500 10
2 大豆 4 400 20

现在想要的效果是 显示仓库parentid=0 如果一号仓库的子仓库有销售信息那么统计下销售量 现在卡住的地放是不知道怎么去统计子仓库,因为像ID=3 是属于1号仓库的,ID=2也是属于1号仓库的,求个解决思路,
功能需求
先显示parentid=0的仓库名称,并统计显示这个仓库的所有子仓库里边的所有销售
点开一号仓库,显示一号仓库里边的子仓库,即parentid=1 并统计PARENTID=1的所有子仓库的所有销售
当点开1.1仓库之后显示的是 Parentid=2的仓库名称并统计所有子仓库销售


------解决方案--------------------
1、是递归出所有子节点的ID,比如统计"1"时子节点"2","3"也统计
SELECT * from 销售信息表 where 仓库表ID in(1,2,3)

2、修改仓库表加入一个字段,从根节点一直维护到本节点字段。
allId 

"1" allId 为1,
"2" allId 为1,2
"3" allId 为1,3。。。以此类推,
SELECT * from 销售信息表 where 仓库表ID like '1,'

两种方式都能实现