MySQL の階層クエリ
階層データを扱う場合、特定のノードの親、祖父母、およびさらに先祖を取得する機能が有効になります。重要な。この記事では、MySQL で再帰クエリを使用してこれを実現する方法について詳しく説明します。
列 a と b で表される親子関係を持つテーブルがある場合、次のクエリを使用して、特定のクエリの祖先をすべて検索できます。
SELECT @id := (SELECT senderid FROM mytable WHERE receiverid = @id) AS person FROM ( SELECT @id := 5 ) vars STRAIGHT_JOIN mytable WHERE @id IS NOT NULL
このクエリは、@id 変数を指定されたノード (この例では 5) に設定するサブクエリで始まります。次に、外側のクエリがこの変数のテーブルに結合し、親がなくなるまで効果的に階層を上にたどります。 STRAIGHT_JOIN 構文は、クエリがトップダウン方式で処理されることを保証します。
クエリの結果は、指定されたノードの祖先のリストになります。ルート祖先が最初にリストされます。
1 2 3 4
このアプローチを理解することで、開発者は MySQL の階層構造を効果的に移動できるようになり、親子でデータに対して複雑なクエリを実行できるようになります。関係。これは、家系図から組織階層に至るまでのアプリケーションにとって特に価値があります。
以上が再帰クエリを使用して MySQL 階層データベース内のノードのすべての祖先を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。