sql >> Databáze >  >> RDS >> Oracle

SQL SELECT k nalezení cyklických odkazů ve stromu organizovaném pomocí ID otce?

SELECT  n.*, CONNECT_BY_ROOT(id), level
FROM    elements n
START WITH
        id IN
        (
        SELECT  MIN(id)
        FROM    (
                SELECT  id, CONNECT_BY_ROOT(id) AS root
                FROM    elements
                START WITH
                        id IN
                        (
                        SELECT  id
                        FROM    elements n
                        WHERE   CONNECT_BY_ISCYCLE = 1
                        CONNECT BY NOCYCLE
                                father_id = PRIOR id
                        )
                CONNECT BY NOCYCLE
                        id = PRIOR father_id
                )
        GROUP BY
                root
        )
CONNECT BY NOCYCLE
        id = PRIOR father_id

Možná si budete chtít přečíst tento článek:




  1. Mysql:PŘEJMENUJTE TABULKU, POKUD EXISTUJE

  2. Ekvivalent PostgreSQL pro SQL Server GROUP BY WITH ROLLUP

  3. Windows IIS - PHP PDO Mysql Nelze najít ovladač

  4. POSTGRES KOPÍROVÁNÍ Z PROGRAMU do dynamické tabulky s neznámými sloupci