数据库中表的结构如下:id:唯一的id
parent_id 父节点id
category_code 该节点的代码
category_name 该节点对应的名称
category_level 对应的层级别id   parent_id   category_code   category_name category_level
4 0 4      交通運輸通訊設備 0
164 4 01      陸運設備          1
165 4 02      通訊設備          1
167 164 01      汽車                   2
168 164 02      人力車          2
175 165 01      音響視訊設備          2
176 165 02      電訊機械設備          2
177 165 03      電訊傳輸設備          2如何实现:productNo category_code parent_id  category_code   category_name                category_level
  4          4        0 4      交通運輸通訊設備                            0
 401        164        4   01      交通運輸通訊設備/陸運設備                   1
 402        165        4 02      交通運輸通訊設備/通訊設備                   1         
 40101      167        164 01      交通運輸通訊設備/陸運設備/汽車                   2
 40102      168        164 02      交通運輸通訊設備/陸運設備/人力車          2
 40201      175        165 01      交通運輸通訊設備/通訊設備/音響視訊設備          2
 40202      176        165 02      交通運輸通訊設備/通訊設備/電訊機械設備          2
 40203      177        165 03      交通運輸通訊設備/通訊設備/電訊傳輸設備          2

解决方案 »

  1.   

    参考一下这个贴子试一下。
    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/02/4142971.aspx
    MySQL中进行树状所有子节点的查询 
      

  2.   

    order by category_level,parent_id,category_code,productNo 行吗
      

  3.   


    不是排序,下面那个结果是根据上面那张表查询出来的。
    而且把父节点所对应的代码也加上了。
    比如
    id  parent_id  category_code  category_name category_level 
    168 164 02     人力車         2 它所对应的parent_id 是 164 那么去表中查询可以得到 它的父节点是
    164 4 01     陸運設備         1 
    而 陸運設備所对应的父节点是 4 
    查表可得
    4 0 4     交通運輸通訊設備 0 这时,父节点为0,所以就是顶层了。那么人力车的ProductNo 就是 40102