日期:2014-05-17  浏览次数:20936 次

一sql语句求解

有两张表如下
表1是原始表,表2的内容是把上级和下级的全部对应起来,包括自己,
比如表1上级2对应的下级有30,20,然后30的下级又有300
在表2中就要写4条记录,分别为30,20,300,2这几个下级。

不知道大伙能听明白否


表1
上级         下级
1           20
2           30
3           10
2           20
30 300

表2
上级         下级
1 20
1 1
2 30
2 20
2 2
3 10
3 3
30 300
2 300
300 300

------解决方案--------------------
select * from test
start with 上级=1 //上级
connect by prior 下级=上级

prior 表示上条纪录
prior 下级=上级 上条纪录的 下级=本条的 上级

具体找start with用法
------解决方案--------------------
楼主希望的应该是 这样的结果吧:

上级 下级
1 20
1 1
2 30
2 20
2 2
3 10
3 3
30 300
2 300
30 30

------解决方案--------------------
用一条语句实现似乎有困难。