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

postgres-再帰的

    まず、(2, 'grandparent', null) (3, 'grandparent', null)である必要があります それが本当に祖父母なら。次に、クエリの再帰的な半分での(暗黙の)結合条件が逆方向であるため、親をrt.levelparentから取得する必要があります。 t.parent_levelではなく :

    WITH RECURSIVE recursetree(level_id, levelparent) AS (
        SELECT level_id, parent_level 
        FROM level 
        WHERE level_id = 197
    
        UNION ALL
    
        SELECT t.level_id, t.parent_level
        FROM level t JOIN recursetree rt ON rt.levelparent = t.level_id
        -- join condition fixed and ANSI-ified above
    )
    SELECT * FROM recursetree;
    



    1. 保存されたデータの奇妙な文字エンコード、古いスクリプトはそれらにうまく表示されています新しいものは表示されません

    2. javascriptを使用して日付からunix_timestampに変換する方法

    3. oracleはselectステートメントから列名を読み取ります

    4. 行を数えるためのphpを使用した私のSQLのベストプラクティス