查询获取一个由一张数据表构建的Tree的所有最末级节点

chally 发布于 2011/10/13 18:01
阅读 1K+
收藏 0

这样一张数据表 A,结构如下:

NODENAME 节点名称

PK_A 节点主键

PK_PARENT 上级节点主键

由这张表构成一棵树,现在要用SQL查询所有最末级节点,

我的写法:SELECT * FROM A WHERE (SELECT COUNT(1) FROM A A1 WHERE A1.PK_PARENT = A.PK_A) = 0,这样查速度很慢,n^2级别。。。

请教下,哪位大神,有什么更好的方法查出末级节点。

有个前提条件按,这张表上已经加不了末级节点的标识了。

加载中
0
恺哥
恺哥

朋友,加字段是查询最快的方法

首先你的tree没有加这个字段,就可以视为设计缺陷

要想弥补的话,你可以增加一张“补丁表”,就是新建一张表,与你现在的tree表做一对一的关系

用补丁表来记录pk_a是否是末节点

最好还是修改你的表结构

0
chally
chally

引用来自“dd”的答案

Nice !
返回顶部
顶部