• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql怎么查询一个单表树形结构的数据

mysql 搞代码 7年前 (2018-06-02) 405次浏览 已收录 0个评论

mysql如何查询一个单表树形结构的数据
表结构如下

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);   

欢迎大家阅读mysql怎么查询一个单表树形结构的数据》,跪求各位点评,by 搞代码

须要查询出这样的结果

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.csdn.net/acmain_chm/article/details/4142971
MySQL中进行树状所有子节点的查询
在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但很遗憾,在MySQL的目前版本中还没有对应的功能。 在MySQL中如果是有限的层次,比如我们事先如果可以确定这个树的最大深度是4, 那么所有节点为根的树的深度均不会超过4,则我们可以直接通过left join 来实现。 但很多时候我们…
——解决方案——————–
你的结果是递归遍历的结果 无法用leftjoin实现


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql怎么查询一个单表树形结构的数据
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址