假设一个主表A
存储的信息
--id(pk)-- name-- type--
1 ### ###
2 ### ###
3 ### ###
5 ### ###
里面的数据关系存于一个层次表B
level--- parent_id(ref A.PK)--- child_id(ref A.pk)
warning 4 2
other 5 3
warning 1 5
info 2 3
其中level是有层级
现在想查出A表存在数据,并且他的层次表中向上检索到level=warning或者info(有可能存在向上检索很多层的情况)
那么对于上述B表,查出来的数据该是:
id:1,2,4
需要筛选的数据时1.name,2.name,3.name
我想用递归查询,但查出来不对
请高手指教一下,谢谢
存储的信息
--id(pk)-- name-- type--
1 ### ###
2 ### ###
3 ### ###
5 ### ###
里面的数据关系存于一个层次表B
level--- parent_id(ref A.PK)--- child_id(ref A.pk)
warning 4 2
other 5 3
warning 1 5
info 2 3
其中level是有层级
现在想查出A表存在数据,并且他的层次表中向上检索到level=warning或者info(有可能存在向上检索很多层的情况)
那么对于上述B表,查出来的数据该是:
id:1,2,4
需要筛选的数据时1.name,2.name,3.name
我想用递归查询,但查出来不对
请高手指教一下,谢谢
解决方案 »
- 在虚拟机下得linux系统中装oracle
- 创建的表空间数据文件能否顺序存储。
- 在pl/sql 中不小心执行了drop table,但后来发现强行中止了,表还会有影响吗?
- Java插入ORACLE时间问题
- 如何向oracle中写入日期
- 这句话对不对啊:select * from table where rownum<1000 and rwonum>100,如果不对该怎么改啊
- 那位大哥 对比sql server 讲讲 oracle 的用法,以WINDOWS下为例。详情请进
- 新建数据库问题
- Oracle的简单问题,怎么回事?
- 有个问题没搞明白(关于DBLINK)
- 弱弱问一问题PLSQL
- 急,imp怪异问题,请高手协助
是这个意思吗?
SELECT *
FROM A
WHERE (
SELECT count(case when lel in('warning','info') then 1 end) FROM b
START WITH parent_id=A.ID
CONNECT BY parent_id=PRIOR child_id
and prior lel not in('warning','info'))>0