我正在尝试创建一个 MySQL 查询,它将返回节点列表、每个节点的深度以及每个节点有多少直接子节点。
这样做的原因是我需要用“下一个可用”点填充二叉树,这意味着具有少于 2 个直接子节点的最高级别节点。
我找到了将返回深度的查询,并且我找到了将返回节点具有的直接子节点数量的查询,但我还不足以将这两个查询组合成一个查询。顺便说一句,我正在使用 CakePHP。
我的表结构如下所示:
CREATE TABLE `nodes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`f_id` int(11),
`parent_id` int(11),
`lft` int(11) DEFAULT NULL,
`rght` int(11) DEFAULT NULL,
`lastadd` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL,
`created` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
我希望找到的是以下内容:
提供具有少于 2 个直接子节点的节点列表,按最低深度、最少子节点和最早的 lastadd 日期排序。
任何帮助,将不胜感激。