我有个表,之内pk是id,有一个field parent_id指向同一个表内另一行的id,即他的parent,怎样可以做到,在给出一个id的情况下查出他所有parent行?求帮助

解决方案 »

  1.   

    ACMAIN_CHM大神的blog应该比较有帮助
      

  2.   

    select * from table
    where parent_id = '#id' and id != '#id'
      

  3.   

    这个无法用SQL语句来实现,仅能通过存储过程,或者在程序中递归或循环解决。 这个是从树叶向树根查询,相对比较容易实现。 
      

  4.   

    存储过程的思路就是直接不断的 执行 
    select parent_id into var_id from table where id = varid;一直 do while 到返回的row为0.
      

  5.   


    谢谢,这样是不是返回最上面的parent_id啊,每次循环都重新对varid付了值,怎么可以返回所有的parentid啊
      

  6.   

    存储过程中另加一个变量.
    循环中
    set var_string = concat(var_string ,var_id )
      

  7.   

    MYSQL目前不支持递归查询,只有用SP来递归