Mysql
 sql >> Database >  >> RDS >> Mysql

Ottenere tutti i figli (ei loro figli) di un dato nodo padre in una tabella relazionale MySQL/MariaDB

Controlla questo. Il valore specificato in @pv :='6' dovrebbe essere impostato sull'id del genitore di cui vuoi trovare tutti i discendenti.

inoltre puoi controllare la Demo aggiornata

            select  Parent, concat ( "{" ,Parent,",",GROUP_CONCAT(concat (child )SEPARATOR ','),"}")   as Child
            from    (select * from #TableName
                     order by parent, child) s,
                    (select @pv := '6') initialisation
            where   find_in_set(parent, @pv) > 0
            and     @pv := concat(@pv, ',', child);

Per visualizzare i bambini con un genitore in una colonna, utilizzare la query seguente:

            select parent as child from tchilds where parent = @pv2
            union
            select  Child
            from    (select * from tchilds
                     order by parent, child) s,
                    (select @pv2 := '6') initialisation
            where   find_in_set(parent, @pv2) > 0
            and     @pv2 := concat(@pv2,',', child)

facci sapere se hai ancora domande o dubbi.