网页URL的递归sql查询

时间:2013-11-06 23:16:55

标签: sql postgresql

我正在使用postgresql但是如果有更好的通用sql方式。

我有一个存储网页数据的表,包括slug(例如在example.com/x/y,x和y都是slugs)和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的slu ::

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,是否有一种简单的方法可以找到所有这些?

1 个答案:

答案 0 :(得分:2)

由于@ a_hourse-with_no_name表示递归CTE应该照顾你。这是我最喜欢的CTE链接:CTE Basics