1

ノードのリスト、各ノードの深さ、および各ノードが持つ直接の子の数を返す MySQL クエリを作成しようとしています。

この理由は、バイナリ ツリーに "次に利用可能な" スポット、つまり直接の子が 2 つ未満の最上位ノードを配置する必要があるためです。

深さを返すクエリと、ノードが持つ直接の子の数を返すクエリを見つけましたが、2 つのクエリを 1 つのクエリに結合するには、SQL の天才ではありません。ちなみに私は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