我有 2 个表。
nodes (nid, ntid, parent, title)
nid
是 Node ID(主键),ntid
是表 noteTypes
noteTypes (ntid, name)
- 这个表只有 4 行
- 1,书
- 2,章节
- 3、文章
- 4,科
我需要为特定 Node 显示所有相同级别的父 Node 。示例:我收到 nid = 123,这是一篇文章的 ID,我需要获取所有章节(以便能够选择将文章移动到我的 node.js 应用程序中的位置)
我已经完成了 3 个查询:
1) 获取 nid=123 的父 id(返回 12,即文章的父 id)
2) 获取 nid=12 的父类型(返回 2,即章节)
3) 获取父类型=2 的所有 Node (返回所有章节)
使用这个数据库模型,是否可以只用 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/