打印本文 打印本文 关闭窗口 关闭窗口
SQL Story(十一)--树状表游戏
作者:武汉SEO闵涛  文章来源:敏韬网  点击数4351  更新时间:2007/11/14 10:58:29  文章录入:mintao  责任编辑:mintao

Node1-1

N12

ROOT

Node1-2

N13

ROOT

Node1-3

N21

N11

Node2-1

N22

N11

Node2-2

N23

N12

Node2-3

N24

N13

Node2-4

N31

N21

Node3-1

N32

N21

Node3-2

N33

N21

Node3-3

N34

N22

Node3-4

 

       归纳法第一步,当然是构造初值,查询子树的根节点就是标准的SQLSELECT ID, DATA FORM TreeView WHERE ID = …,在这里有一个细节,查找表中所有的根节点(细心的读者可能早就发现,我们设计的这个TreeView可以存储任意多个树)可以通过SELECT R.ID, R.DATA FORM TreeView R WHERE R.ID = R.PID来实现。简单起见,我们就从这里起步吧。

       第二步,选择出前两层也不难,

SELECT R.ID, N1.ID, N1.DATA

FROM TreeView R

LEFT JOIN TreeView N1

ON R.ID = N1.PID

AND R.ID <> N1.ID

WHERE R.ID = R.PID

       我们要注意的是加蓝的部分,这是增加一层后做改动的部分。

       很容易,我们得到前三层,

SELECT R.ID, N1.ID, N2.ID, N2.DATA

FROM TreeView R

LEFT JOIN TreeView N1

ON R.ID = N1.PID

AND R.ID <> N1.ID

上一页  [1] [2] [3] [4]  下一页

打印本文 打印本文 关闭窗口 关闭窗口