在同一张表中, 本记录.pid = 父.id ,   父记录.pid = 父父.id  三级 直到pid = 0 
想问一下,如果表中有一个字段, 我如何获取所有的父节点和, 求和

解决方案 »

  1.   

    写个递归函数,到pid=0截止,手动输入pid,输出所有父节点
      

  2.   

    数据表的结构:
    id  name    parent_id 
    --------------------------- 
      Home        0 
      About       1 
      Contact     1 
      Legal       2 
      Privacy     4 
      Products    1 
      Support     1 SELECT T2.id, T2.name 
    FROM ( 
        SELECT 
            @r AS _id, 
            (SELECT @r := parent_id FROM table1 WHERE id = _id) AS parent_id
        FROM 
            (SELECT @r := 5, @l := 0) vars,  --查询id为5的所有上级
            table1 h 
        WHERE @r <> 0) T1 
    JOIN table1 T2 
    ON T1._id = T2.id