MySQL で同等の事前接続による接続
MySQL には、Oracle の再帰クエリ用の「CONNECT BY PRIOR」句に直接相当するものがありません。ただし、同様の効果を達成する代替方法が存在します。
手動再帰
MySQL では、複数ステップのプロセスを使用して再帰クエリを手動でシミュレートできます。
最大深度結合
ツリーの最大の深さがわかっている場合は、一連の LEFT OUTER JOIN を使用して、その深さまでのすべての可能な親子関係を含む一時テーブルを作成できます。その後、NULL 値をクリーンアップして、存在しない関係を削除できます。
ネストされたセット モデル
別のアプローチは、ツリー表現をネストされたセットに変換することです。この手法では、各親のすべての子孫ノードの範囲内の最小値と最大値を表す追加の列がテーブルに導入されます。ネストされたセット クエリを使用して、子ノードを効率的に取得できます。
考慮事項
手動再帰は深いツリーでは非効率的になる可能性があり、最大深さの結合には最大の知識が必要です。深さ。ネストされたセットはより堅牢なソリューションですが、追加のテーブル メンテナンスが必要になる場合があります。
最終的に、最適なアプローチは、対象となるデータの特定の要件と特性によって異なります。
以上がMySQL で Oracle の「CONNECT BY PRIOR」の機能を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。