也许是一个过于复杂的标题。基本上想到一个电子邮件收件箱。我有一张这样的桌子:
如您所见,它是一个递归表,非常简单,只有一条消息的 parentID,正如您在绿色高亮环中看到的那样,“链”的末端是 parentID 为 NULL 时。
我需要提供(例如)12 的 INBOXID,并返回所有父母。在这个例子中,我应该得到 1 条记录,即 INBOXID 为 11。
在第二个例子中,我应该能够传入 INBOXID 9,但这次我应该取回 INBOXID 8,7 和 1 行
我确实通过以下查询取得了一些成功:
with q as
(
select inboxid, parentid
from bizzbox
union all
select a.inboxid, a.parentid
from bizzbox a
inner join q on q.inboxID = a.parentID
)
select distinct * from q
..但当然它会返回任何行的所有父母。起点收件箱),我不太清楚我需要做什么???
非常感谢任何帮助!!!!大卫。