欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

一条sql 自连接查询有关问题

更新时间: 2014-01-05 02:12:54 责任编辑: Author_N1

 

一条SQL 自连接查询问题

--参考方法--
递归查询:

select * from course where id in(
select * from course start with id=( select id from course where 科目 in ('course1'))
connect by id=prior 前置ID union all
select * from course start with id=( select id from course where 科目 in ('course1'))
connect by prior id= 前置ID);
--参考方法--
WITH a AS
(
SELECT '4' id,'Courese1' Courese,' ' qzid FROM dual union all
SELECT '5' id,'Courese2' Courese,'4' qzid FROM dual union all
SELECT '6' id,'Courese3' Courese,'5' qzid FROM dual union all
SELECT '7' id,'Courese4' Courese,'6' qzid FROM dual 
)
select level,e.* from a e  start with e.Courese='Courese2' connect by  e.id= prior e.qzid  
order by level desc 

不知道这个是不是能够满足你 
--参考方法--
引用:
Quote: 引用:

递归查询:

select * from course where id in(
select * from course start with id=( select id from course where 科目 in ('course1'))
connect by id=prior 前置ID union all
select * from course start with id=( select id from course where 科目 in ('course1'))
connect by prior id= 前置ID);

ORACLE提示值太多
不过我已经在其他地方知道了。

select ID,科目,前置id 
from course 
start with 科目='Course4' 
connect by nocycle prior id=前置id or prior 前置id=id 
order by id

但还是要谢谢你!

你要实现的是什么?.
根据你的sql实现的是

WITH a AS
(
SELECT '4' id,'Courese1' Courese,' ' qzid FROM dual union all
SELECT '5' id,'Courese2' Courese,'4' qzid FROM dual union all
SELECT '6' id,'Courese3' Courese,'5' qzid FROM dual union all
SELECT '7' id,'Courese4' Courese,'6' qzid FROM dual 
)
select e.* from a e start with e.Courese='Courese3' connect by nocycle  prior e.id=e.qzid  or  prior e.qzid=e.id
order by id  
 
显示的是  
6   Courese3  5
 
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:12:54
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7061/
本文WWW.DOC100.NET DOC100.NET版权所有。