mysql怎么查询一个单表树形结构的数据
mysql如何查询一个单表树形结构的数据
表结构如下
须要查询出这样的结果
我知道oracle用start with ……connect by prior ……来实现,但mysql怎么实现?貌似mysql不能用这个吧
------解决方案--------------------
http://blog.****.net/acmain_chm/article/details/4142971
MySQL中进行树状所有子节点的查询
在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但很遗憾,在MySQL的目前版本中还没有对应的功能。 在MySQL中如果是有限的层次,比如我们事先如果可以确定这个树的最大深度是4, 那么所有节点为根的树的深度均不会超过4,则我们可以直接通过left join 来实现。 但很多时候我们...
------解决方案--------------------
你的结果是递归遍历的结果 无法用leftjoin实现
表结构如下
- SQL code
create table t1 (id number(5),name varchar(10),p_id number(5)); insert into t1 values (1,'name_1',null); insert into t1 values (2,'name_2',1); insert into t1 values (3,'name_3',null); insert into t1 values (4,'name_4',1); insert into t1 values (5,'name_5',3); insert into t1 values (6,'name_6',1); insert into t1 values (7,'name_7',3); insert into t1 values (8,'name_8',4); insert into t1 values (9,'name_9',2); insert into t1 values (10,'name_10',1);
须要查询出这样的结果
- SQL code
id name p_id ------------------------------- 1 1 name_1 2 2 name_2 1 3 9 name_9 2 4 4 name_4 1 5 8 name_8 4 6 6 name_6 1 7 10 name_10 1 8 3 name_3 9 5 name_5 3 10 7 name_7 3
我知道oracle用start with ……connect by prior ……来实现,但mysql怎么实现?貌似mysql不能用这个吧
------解决方案--------------------
http://blog.****.net/acmain_chm/article/details/4142971
MySQL中进行树状所有子节点的查询
在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但很遗憾,在MySQL的目前版本中还没有对应的功能。 在MySQL中如果是有限的层次,比如我们事先如果可以确定这个树的最大深度是4, 那么所有节点为根的树的深度均不会超过4,则我们可以直接通过left join 来实现。 但很多时候我们...
------解决方案--------------------
你的结果是递归遍历的结果 无法用leftjoin实现