我正在使用 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,有没有一种简单的方法可以找到所有这些?