drop table aa 
create table aa (id int,code int,name varchar(20))
insert aa 
select 1,0,'中国'
union all select 2,1,'江苏'
union all select 3,2,'南京'
union all select 4,3,'南京市区'
union all select 5,1,'北京'
union all select 6,5,'北京市区'
select * from aa
select a.code code1,a.name name1,b.code code2,b.name name2,c.code code3,c.name name3,d.code code4,d.name name4
from aa a left join aa b on b.code=a.id left join aa c on c.code=b.id left join  aa d on d.code=c.id
where a.id='1'--结果
/*code1   name1    code2    name2     code3    name3      code4   name4
1       中国     2        江苏      3        南京       4       南京市区
1       中国     5        北京      6        北京市区   null    null*/

解决方案 »

  1.   

    drop table aa 
    create table aa (id int,code int,name varchar(20))
    insert aa 
    select 1,0,'中国'
    union all select 2,1,'江苏'
    union all select 3,2,'南京'
    union all select 4,3,'南京市区'
    union all select 5,1,'北京'
    union all select 6,5,'北京市区'
    select a.code code1,a.name name1,b.code code2,b.name name2,c.code code3,c.name name3,d.code code4,d.name name4
    from aa a left join aa b on b.code=a.id left join aa c on c.code=b.id left join  aa d on d.code=c.id
    where a.id='1'
    --结果
    /*
    0 中国 1 江苏 2 南京  3 南京市区
    0 中国 1 北京 5 北京市区  NULL NULL
    */