Mysql
 sql >> база данни >  >> RDS >> Mysql

Получаване на всички деца (и техните деца) на даден родителски възел в релационна таблица на MySQL/MariaDB

Проверете това. Стойността, посочена в @pv :='6', трябва да бъде зададена на идентификатора на родителя, за който искате да намерите всички негови потомци.

също така можете да проверите на живо Демо актуализирана

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

За показване на деца с родител в една колона използвайте заявката по-долу:

            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)

уведомете ни, ако все още имате въпроси или притеснения.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL код на грешка:1064. Имате грешка във вашия SQL синтаксис

  2. SQL-Server и MySQL оперативна съвместимост?

  3. Приставката за удостоверяване „caching_sha2_password“ не се поддържа

  4. Задаване на стойност по подразбиране за колона тип ДАТА на текуща дата без част от времето?

  5. Всяка получена таблица трябва да има свой собствен псевдоним - грешка от низходяща комбинация от MySQL