declare @a table (TC_Id int,TC_PID int,TC_Name varchar(200))
insert @a values(1,0,'中国')
insert @a values(2,0,'美国')
insert @a values(3,0,'加拿大')
insert @a values(4,1,'北京')
insert @a values(5,1,'上海')
insert @a values(6,1,'江苏')
insert @a values(7,6,'苏州')
insert @a values(8,7,'常熟')
insert @a values(9,6,'南京')
insert @a values(10,6,'无锡')
insert @a values(11,2,'纽约')
insert @a values(12,2,'旧金山')

解决方案 »

  1.   

    大力的可以做到,并且不限于4 层,但当记录量大增时,查询速度会不佳。
    建议使用字符型ID,包含了所有上层信息,父子、孙子、孙子子、子孙、子父等等关系一目了然。
    Create table YourTableName
        (YT_ID  varchar(16) Primary Key,
         YT_ParID varchar(12) Not Null,
         YT_name  char(20))
    insert into YourTableName values('0001','0','动物')
    insert into YourTableName values('0002','0','植物')
    insert into YourTableName values('00010001','0001','哺乳动物')
    insert into YourTableName values('000100010001','00010001','猫')
    insert into YourTableName values('000100010002','00010001','虎')
    insert into YourTableName values('000100010002','000100010002','东北虎')看你的数据量,调整字符串的大小。大家看看,这样查询时是不是速度会提高些?