我有一个我认为只能通过 Connect-to-prior 语句解决的问题。
我的数据模型简化如下:
create table TASK
( TASK_ID number
);
create table ITEM
( TASK_ID number,
NEXT_TASK_ID number
);
create table TASK_ITEM
( TASK_ID number,
ITEM_ID number
);
一组项目组合成一个任务。一组任务组合成一个或多个项目(这是 TASK_ITEM 连接表的来源)。该过程从一组项目开始,并以单个项目结束(最后一个项目的 ITEM.NEXT_TASK_ID 为空,第一个项目不存在 task_item)。
我的问题:
给定一个 task_id我想提取所有前面的任务。
这是一个与Philip Greenspun 对 Oracle 中的树的出色介绍或Wikibook 对 Hierarchical Queries 的描述中描述的问题接壤的问题,但是当它们包含更多 ID 和连接表时,似乎找不到任何好的解决方案来解决这些问题。
可悲的是,我自己的 SQL-foo 很短,我用谷歌搜索了我的心,但没有找到解决我特定问题的方法。
在 Carrie Fisher 的声音中:帮助我 Stack Overflow,你是我唯一的希望。