我正在尝试构建一个非常简单的CMS。为此,我创建了一个名为categories的表。顾名思义,它将是我在CMS中的文章的类别。
我的表格如下:示例数据:
如您所见,类别节点具有父节点。现在,如何编写一个选择特定节点的所有父节点的查询。例如,如果我选择,节点重要,我该如何编写查询将返回以下节点:新闻,用户,常规
我希望我足够清楚
答案 0 :(得分:3)
我不能说我真的很喜欢这种方法,但以下似乎适用于MySQL:
select t.id, t.parent, @parent := parent
from (select @parent := 7) const join
t
on t.id = @parent;
您可以在此SQL Fiddle中看到它。
我不相信这是保证可以工作,但它似乎在实践中起作用。如果需要存储分层数据,则应该真正更改数据结构或切换到支持递归查询的数据库(例如,Postgres,SQL Server和Oracle)。