有一个表是部门表,包括部门ID,部门名称,父ID(上级部门的ID),所有父ID(用这种方法表示:一级部门ID;二级部门ID;   注意,中间用分号隔开),表中包括了一级部门(某机车车辆厂),二级部门,三级部门,现在我要把表中所有部门包括二级部门用这样的方式查出来:
二级部门->三级部门
如果这个部门是二级部门,就只列出其名称 如 部门ID     部门名称     父ID    所有父ID   751        办公室       115    ;916;918;115;
我用下面的方法查出来,结果漏掉了6个二级部门和一个一级部门(这个可以不要):select me.TSZ2900,me.TSZ2902,me.TSZ2908,ltrim(replace(trim(ffather.TSZ2902)||'->'||trim(father.TSZ2902)||'->'||trim(me.TSZ2902),'某机车车辆厂->','')) as department from TSZ29 me,TSZ29 father,TSZ29 ffather where me.TSZ2908=father.TSZ2900 and father.TSZ2908=ffather.TSZ2900请问有没有其它的解决办法?