我正在尝试构建一个非常简单的 CMS。为此,我创建了一个名为类别的表。顾名思义,它将是我在 CMS 中的文章的类别。
我的表看起来像下面的示例数据:
如您所见,类别节点具有父节点。现在,我如何编写一个查询来选择特定节点的所有父节点。 例如,如果我选择节点重要,我如何编写一个查询来将返回以下节点:News、Users、General
我希望我说得足够清楚
最佳答案
我不能说我真的很喜欢这种方法,但以下方法似乎适用于 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)。
关于mysql - 选择引用同一表中其他元素的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18049292/