sql >> Databasteknik >  >> RDS >> Mysql

Få alla barn (och deras barn) till en given föräldernod i en MySQL/MariaDB relationstabell

Kolla detta. Värdet som anges i @pv :='6' ska ställas in på id:t för den förälder som du vill hitta alla avkomlingar till.

Du kan också kolla live Demo uppdaterad

            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);

För att visa barn med förälder i en kolumn använd nedanstående fråga:

            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)

låt oss veta om du fortfarande har några frågor eller funderingar.




  1. Enhetsattributvärdemodell - Prestandaalternativ?

  2. Mysqldump' känns inte igen som ett internt eller externt kommandoprogram eller batchfil

  3. Flera mysql INSERT-satser i en fråga php

  4. MYSQL + PHP för att visa data från två rader som en enda kolumn