-1

我正在使用 postgresql,但如果有一个通用的 sql 方式会更好。

我有一个存储网页数据的表,包括 slug(例如在 example.com/x/y 中,x 和 y 都是 slug)和 parent_id(x 和 y 在此表中各有一条记录。x 的 id 与 y 的 parent_id 匹配)。

如果我有 y 的 id,有没有一种简单的方法可以找出完整的 URL (/x/y)?或者至少是所有的 id (/x_id/y_id)?

我知道我可以为这个特定的例子得到这个,如下所示:

select parent_id from pages where slug like 'x';

=> 5

并获取该 ID 的 slug:

select slug from pages where id = (select parent_id
  from pages where slug like 'x');

=> 是的

但是如果 URI 更像 /a/b/c/d/e/f/g 呢?如果我只有 g 的 id,有没有一种简单的方法可以找到所有这些?

4

1 回答 1

2

As @a_hourse-with_no_name said a recursive CTE should take care of you. This is my favorite link for CTE's: CTE Basics

于 2013-11-06T23:50:15.513 回答