我不完全确定如何说出我的意思。让我试试:有没有办法选择参考字段级联的所有元素?
例如,我有行:
parentRef | Reference | Data ------------------------------ aContainer | mainObj | "Parent" mainObj | secondObj | "Child 1" secondObj | thirdObj | "Child 2" nonExistent | blankObj | "Don't select me!"
当我只知道一个parentRef:“aContainer”时,我想在单个语句中选择mainObj,secondObj,thirdObj。这可能吗?
我可以通过让我的代码执行许多查询来实现这一点:select...where parentRef = 'aContainer'
,然后是select...where parentRef = 'mainObj'
等,但我真的不想用我的数据库进行多次查询,主要是为了速度。< / p>
编辑:树查询!那是我需要的搜索词。
答案 0 :(得分:2)
Oracle可以执行树查询,查看START WITH和CONNECT BY
答案 1 :(得分:0)
如果我理解你的话,你需要类似相关查询的东西。这将允许您仅获取表中具有父引用的项目。一个例子看起来像下面这样(虽然我可能已经颠倒了逻辑):
select
parentRef
, Reference
, Data
from mytable parentTable
where Reference in (
select
reference
from mytable childTable
where childTable.reference = parenttable.parentref)