我有2张桌子。
nodes (nid, ntid, parent, title)
nid
是节点ID(主键),ntid
是表noteTypes
的外键noteTypes (ntid, name)
-该表只有4行1,预定
2,章
3,文章
4,科
我需要显示特定节点的所有相同级别的父级。示例:我收到nid = 123,这是文章的ID,并且我需要获取所有章节(以便能够在我的node.js应用中选择将文章移到何处)
我已经用3个查询完成了:
1)获取nid = 123的父代ID(返回12,即文章父代的ID)
2)获得nid = 12的父类型(返回2,即本章)
3)获取父类型= 2的所有节点(返回所有章节)
使用此数据库模型,能否仅用1个查询而不是3个查询来完成?
最佳答案
由于知道所需的确切级别,因此可以创建查询(Mysql不允许进行递归,这将允许您动态遍历关系)。
SELECT all_articles.*
FROM nodes AS articles
JOIN nodes AS chapter
ON articles.parent = chapter.nid
JOIN nodes AS all_articles
ON all_articles.parent = chapter.nid
WHERE articles.nid = 123;
关于mysql - 数据库邻接列表模型-在一个查询中获取所有相同级别的父级?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22881257/