我有两张桌子。
nodes (nid, ntid, parent, title)nid是节点id (主键),ntid是表noteTypes的外键。
noteTypes (ntid, name) -这个表只有4行
我需要显示特定节点的所有相同级别的父级。示例:我收到nid = 123,这是文章的id,我需要获取所有章节(以便在我的node.js应用程序中选择移动文章的位置)。
我已经做了三个查询:
1)获取nid=123的父id (返回12,这是文章父级的id )
2)获取nid=12的父类型(返回2,这是本章)
3)获取父type=2的所有节点(返回所有章节)
有了这个数据库模型,可以只使用一个查询,而不是3个查询吗?
发布于 2014-04-05 14:08:33
因为您知道所需的确切级别,所以可以创建一个查询(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;https://stackoverflow.com/questions/22881257
复制相似问题