sql >> データベース >  >> RDS >> Mysql

レコードの深さを取得し、親レコードと祖先レコードをカウントするmysql

    このようなクエリをたくさん行う場合は、質問している隣接リストよりも入れ子集合モデルの方が適切であることがわかる場合があります。両方のモデルについて、ここ で良い議論があります。 。

    いずれにせよ、隣接リストを使用して要求していることを実行するには、アプリケーションレイヤーで再帰を確認するか、レベルを3番目の列として保存します。

    ETA:レベル数がそれほど多くない場合は、自己結合でそれを行うことができます:

    例えば2つの祖先を持つノード:

    SELECT t1.node 
    FROM mytable AS t1
    JOIN mytable AS t2 ON t1.parent = t2.node
    JOIN mytable AS t3 ON t2.parent = t3.node
    WHERE t3.parent IS NULL;
    



    1. このMySQLクエリがハングするのはなぜですか?

    2. InnoSetupを使用してMSSQLServerに接続するにはどうすればよいですか?

    3. Oracle SQL Developer:REFCURSORの結果をグリッドに表示しますか?

    4. Oracle After Delete Trigger ...テーブルの変更を回避する方法(ORA-04091)?