1

我正在尝试创建一个 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 日期排序。

任何帮助,将不胜感激。

4

0 回答 0