有一张表 FORUMS(论坛版块表)  里面有2个字段  fid fud
fid是版块ID  fud是记录当前版块的父ID的 如:
fid   fud
1     0
26    1
27    26
28    26
29    26
现在求教一个SQL文,希望不管传哪一级别的ID近来都能获取到他子集的所有ID
如:传 1 进来就可以查出  26,27,28,29    
    传26 进来就可以查出 27,28,29 
谢谢各位的帮忙!!!!

解决方案 »

  1.   

    就是一条SQL 解决不了这个问题吗,只能通过多条SQL 来完成吗?
      

  2.   


    create table forums (
    fid int not null,
    fud int not null
    )engine=myisam;
    insert into forums values
    (1,0),
    (26,1),
    (27,26),
    (28,26),
    (29,26);
    DELIMITER $$DROP PROCEDURE IF EXISTS `test`.`sp_get_fid`$$CREATE PROCEDURE `test`.`sp_get_fid`(IN f_fid int)
    BEGIN
      select group_concat(fid) 
      from forums  
      where fud = f_fid  group by fud  order by fud asc;
    END$$DELIMITER ;
      

  3.   

    本帖最后由 yueliangdao0608 于 2007-12-12 10:14:31 编辑