我有2张桌子。
nodes (nid, ntid, parent, title)
nid
是节点ID(主键),ntid
是表noteTypes
的外键
noteTypes (ntid, name)
- 此表只有4行
我需要为特定节点显示所有相同级别的父级。示例:我收到nid = 123这是文章的ID,我需要获取所有章节(以便能够选择在我的node.js app中移动文章的位置)
我已经完成了3次查询:
1)获取nid = 123的父ID(返回12,这是文章父级的id)
2)获取nid = 12的父类型(返回2,这是章节)
3)获取父类型的所有节点= 2(返回所有章节)
使用此数据库模型,只能使用1个查询而不是3个
来完成答案 0 :(得分:0)
由于你知道所需的确切级别,你可以创建一个查询(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;