首页 新闻 赞助 找找看

关于SQL查询问题

0
悬赏园豆:30 [已解决问题] 解决于 2013-08-30 19:57

有这样的一个数据结构

code        name        path

1              山东          0

2              济南          1

3              青岛          1

4              历下区       2

5              市中区       2

 

我需要用一条SQL写出这样的效果,如下。我想得到这条信息和他上级的名称

1   山东   null

2   济南   山东  

3   青岛   山东

4   历下区   济南

5   市中区   济南 

 

请教高手!!!    

梧桐雨的笑容的主页 梧桐雨的笑容 | 初学一级 | 园豆:4
提问于:2013-08-30 15:25
< >
分享
最佳答案
3
1 select t1.code, t1.name, t2.name
2 
3 from table t1
4 
5 left join table t2 on t1.path = t2.code
收获园豆:26
zucker1988 | 小虾三级 |园豆:586 | 2013-08-30 15:30

非常好的例子。谢谢 

梧桐雨的笑容 | 园豆:4 (初学一级) | 2013-08-30 19:58
其他回答(5)
0

楼上正解.....只要再次联查本表,关联path和id就可以了

Snail的梦 | 园豆:278 (菜鸟二级) | 2013-08-30 16:00
0

select table1.code,table1.name,table2.name
 from table1
 left join table2 on table1.code=table2.path

收获园豆:2
li-peng | 园豆:954 (小虾三级) | 2013-08-30 16:12
0

inner join 也行吧?怎么都left

1L  +1

seaconch | 园豆:4823 (老鸟四级) | 2013-08-30 17:11
0


select code, name, (select name from table1 t2  where t2.code= t1.path)
from table1 t1

收获园豆:2
Yu | 园豆:12980 (专家六级) | 2013-08-30 17:15
0

1楼的答案就不错了。连接比子查询效率高,然后如果用inner join的,山东的这条数据应该是查不出来的~,要用左边的表为主表才行~

幻天芒 | 园豆:37175 (高人七级) | 2013-08-30 17:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册