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

ルート親を取得するためのmysqlクエリ

    このクエリを試してください

    これは、実際のクエリの前に派生テーブルとしてレコードが降順で並べ替えられているため、親のIDが子よりも小さいという前提で機能します。

    select 
      @parent:=parent_id as prnt, title, id
    from
      (select @parent:=8 ) a
    join 
      (select * from tbl order by id desc) b
    where 
      @parent=id
    

    フィドル

    | PRNT | TITLE | ID |
    |------|-------|----|
    |    7 |     q |  8 |
    |    6 |     a |  7 |
    |    0 |     d |  6 |
    

    注最良の方法は、ストアドプロシージャを使用することです。




    1. SQLINクエリは奇妙な結果を生成します

    2. Postgres:オフセット/制限のある副選択でパフォーマンスが非常に悪いのはなぜですか

    3. ASYNC_NETWORK_IO待機に対する実行プランの影響–パート1

    4. 多対多のHibernateマッピングとmysqlスクリプト-永続性の問題