联动菜单查询的新问题
说明查询人口数量
菜单1---菜单2----菜单3----菜单4
1) 中国----辽宁----大连----西岗区
2) 中国----辽宁----大连----不指定
3) 中国----北京----朝阳----不显示
4) 中国----不指定
说明:
一共有4层菜单
菜单1--菜单4 都是连动的,如果某个菜单是最后层菜单,那么它的下个菜单就不会显示(如例子:3)
如果不是最后层,那么显示下个菜单,并且不选择[不指定]的话,会显示到菜单4为止(如例子:1)
除了菜单1之外,其余菜单都可以选择[不指定](如例子:2),需要查询大连所有区的人口数
例子4就是查询中国所有省,市,区的人口数
[color=#FF0000][/
实现方法color]
SQL code
-- 3. 最后取得所有子行政区下属的人口的总数
SELECT COUNT(1)
from
-- 1. 查询所有sAreaID的下属行政区
(SELECT AREA_ID
FROM A
-- 以AREA_ID = :sAreaID做为递归的起始节点
START WITH AREA_ID = :sAreaID
-- 查询所有子行政区进行递归
CONNECT BY PAREA_ID = PRIOR AREA_ID) X,
-- 2. 将查询得到的行政区与人口表进行关联
B
WHERE X.AREA_ID = B.AREA_ID ;
新问题现在菜单可以复选,比如我想查询辽宁-大连和辽宁-沈阳,而不需要查询 辽宁-鞍山等城市,怎么办呢??
------解决方案--------------------
在connect by处再加一个and条件,对大连和沈阳进行限制罢。
------解决方案--------------------本质上是删除层次查询的分支。
------解决方案--------------------这是深度搜索问题。