求SQL语句:根据树型子节点信息(如:ID),找出该节点上所有的父节点? ( 积分: 100 )

  • 主题发起人 主题发起人 cyjsir
  • 开始时间 开始时间
C

cyjsir

Unregistered / Unconfirmed
GUEST, unregistred user!
数据表t_Table
序号(nID) 名称(sName) 父节点序号(nPartentID) sFlag
1 A 0 01
2 B 1 0101
3 C 2 010101
4 D 3 01010101
5 E 2 010102
....
如下树结构:
A
|-B
|-C
|-D
|-E
|-F
|-G
|-H
|-k
....
1.问(已解)
根据 E 找出结果
序号(nID) 名称(sName)
5 E
2 B
1 A

根据 G 找出结果(表结构略)
G
F
E
B
A

根据 k 找出(表结构略)
K
A
2.找出这种结果:
序号 名称 > 一级父名称>二级父名称>三级父名称
nID sName sName sName sName
4 D C B A
F C B A
G F E B
 
你的数据库结构是什么都不知道,叫人怎么给你写sql?
 
加个FLAG,自已搞定,怎么收回分呢?
 
“数据结构部分决定算法,好的结构会有简单的算法,不好的结构会有繁难的算法,甚至
没有算法”,引用别人的话,呵呵。
你可以建立一个辅助字段,不要那些parentid什么的,比如
001,001001,001001001,001001002,...等等
要找001001001的所有父节点那就是
time = (len(code) / 3) - 1
select * from table where code = '001001' or code = '001',
提供思路,供君参考
 
参考一下
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3678017
 
谢谢,我加的sFlag就是你说的001,001001,001001001,001001002,...这些号!
我们想到一起来了.
TO lisongmagic 给你50
下一问再给50
 
第二问还是自已搞定:
select a.nID,a.sName,b.nID,b.sName,c.nID,c.sName,d.nID,a.sName from t_table a
left join t_table b on b.nID=a.nPartentID
left join t_table c on c.nID=b.nPartentID
left join t_table d on d.nID=c.nPartentID
....
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
609
import
I
后退
顶部