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

アイテムのすべての祖先を取得するSQL再帰クエリ

    with name_tree as (
       select id, parent_id, name
       from the_unknown_table
       where id = 1 -- this is the starting point you want in your recursion
       union all
       select c.id, c.parent_id, c.name
       from the_unknown_table c
         join name_tree p on p.parent_id = c.id  -- this is the recursion
    ) 
    select *
    from name_tree
    where id <> 1; -- exclude the starting point from the overall result
    

    SQLFiddle: http://sqlfiddle.com/#!3/87d0c/1



    1. MySQLの日付形式DD/MM / YYYYクエリを選択しますか?

    2. 11i/R12での多言語サポート

    3. MySqlはLIMITとORDERBYを組み合わせます

    4. 日付ごとにSQLデータベースからデータを取得しますか?