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*/
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*/
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
*/