在ORACLE 数据库中有一种方法可以实现级联查询
select * //要查询的字段
from table //具有子接点ID与父接点ID的表
start with selfid=id //给定一个startid(字段名为子接点ID,及开始的ID号)
connect by prior selfid=parentid //联接条件为子接点等于父接点
这个SQL主要用于级联查询,给一个父接点可以查出所有的子接点。及子接点的子接点,一查到底,很实用。
例:航班表airline,如何用sql语句查询出从广州出发能到达的所有目的地,允许任意中转。
FLIGHTNO ORIGIN DESTINATION
-------------------------------------------
cz3001 CAN CSX
cz3002 CAN SHA
cz3003 CSX SHA
cz3004 CSX PEK
cz3005 SHA XIY
cz3006 SHA SWA
cz3007 PEK URC
cz3008 PVC AMS
cz3009 WUH PVC
cz3010 WUH XIY
-------------------------------------------
cz3001 CAN CSX
cz3002 CAN SHA
cz3003 CSX SHA
cz3004 CSX PEK
cz3005 SHA XIY
cz3006 SHA SWA
cz3007 PEK URC
cz3008 PVC AMS
cz3009 WUH PVC
cz3010 WUH XIY
这里根就是CAN,SQL语句如下:
select t.destination from airline t start with origin='CAN' connect by prior destination = origin;
查询结果:
DESTINATION
-------------------
CSX
SHA
XIY
SWA
PEK
URC
SHA
XIY
SWA
9 rows selected.
--------------------------------
在网上看到下面的例子应该更容易理解些,转载一下:
数据结构如下:
t1
t11
t111
t1111
t12
t121
t1211
db数据字段如下:
task_id task_name t.parent_task_id ***
*** *** *** ***
000001 t1 *** ***
000002 t11 000001 ***
000005 t12 000001 ***
000003 t111 000002 ***
000004 t1111 000003 ***
000006 t121 000005 ***
000007 t1211 000006 ***
*** *** *** ***
t1
t11
t111
t1111
t12
t121
t1211
db数据字段如下:
task_id task_name t.parent_task_id ***
*** *** *** ***
000001 t1 *** ***
000002 t11 000001 ***
000005 t12 000001 ***
000003 t111 000002 ***
000004 t1111 000003 ***
000006 t121 000005 ***
000007 t1211 000006 ***
*** *** *** ***
查询语句:
select t.task_id ,t.task_name ,t.parent_task_id
from t_task t
start with task_id='000001'
connect by prior task_id = parent_task_id;
结果显示:
task_id task_name t.parent_task_id
000001 t1
000002 t11 000001
000003 t111 000002
000004 t1111 000003
000005 t12 000001
000006 t121 000005
000007 t1211 000006
strat with 指定层次开始的条件,即是说满足这个条件的行即可以做为层次树的最顶层
connect by prior指层之间的关联条件,即什么样的行是上层行的子行(自连接条件)
查询所有上级信息
select level ,id,name,parentid from temptable2
connect by prior parentid(属于顶层的列)=id(子层的列) start with id =1
相关推荐
在ORACLE 数据库中有一种方法可以实现级联查询 select * //要查询的字段 from table //具有子接点ID与父接点ID的表 start with selfid=id //给定一个startid(字段名为子接点ID,及开始的ID号) connect by prior ...
省市区sql文件 单表
全国行政区级联数据库_sqlserver版 全国行政区级联数据库_sqlserver版 全国行政区级联数据库_sqlserver版 全国行政区级联数据库_sqlserver版 全国行政区级联数据库_sqlserver版 全国行政区级联数据库_sqlserver版 ...
struts2 spring jpa操作数据库 级联数据 hibernate
省市区街道级联地址数据库,方便大家做地址相关应用。。
不同级别的菜单内容分别存储在数据库里,然后通过连接数据库实现级联菜单的功能
这是Adf多表级联菜单实例其中保存创建Criteria知识,多表关系,以及在Vo中使用vo当前字段过滤结果
省市区js级联控件,附带SQL语句
2015年最新最全的省市区街道级联查询
自己找了很久,这个是省市地3级,级联的sql语句可以用去MS SQLSever 直接执行生成
全国省市区镇,4级级联的mysql数据库文件,region.sql,直接导入即可用
dwr实现2级级联菜单dwr实现2级级联菜单dwr实现2级级联菜单dwr实现2级级联菜单dwr实现2级级联菜单dwr实现2级级联菜单dwr实现2级级联菜单dwr实现2级级联菜单dwr实现2级级联菜单
省市区三级级联的数据库sql语句,适用于SQLServer,若要别的数据库替换成相应的数据类型即可。 省市级联 省市区三级级联
使用layui实现的可以多选的级联选择器,无限级联选择
jsp实现级联菜单jsp实现级联菜单jsp实现级联菜单jsp实现级联菜单jsp实现级联菜单
asp读取access数据库数据,在html页面动态生成多级级联的下拉框,摆脱静态级联下拉框数据变更烦恼。
多个表(管理员,用户,商品,商品类型,订单,订单详情,图片,评论,地址)的增删改查、管理员登陆、分页、搜索、高级搜索等操作,界面使用jquery easyui完成,后台全部返回json。使用status2。...
java js 城市级联菜单xml和sql版.rar
NULL 博文链接:https://devintan110.iteye.com/blog/849678