Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Pobranie wszystkich dzieci (i ich dzieci) danego węzła nadrzędnego w tabeli relacyjnej MySQL/MariaDB

Sprawdź to. Wartość podana w @pv :='6' powinna być ustawiona na identyfikator rodzica, dla którego chcesz znaleźć wszystkie jego potomków.

możesz także sprawdzić na żywo Demo zaktualizowane

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

Aby wyświetlić dzieci z rodzicem w jednej kolumnie, użyj poniższego zapytania:

            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)

daj nam znać, jeśli nadal masz jakieś pytania lub wątpliwości.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Adapter bazy danych Zend — złożone zapytanie MySQL

  2. Odmówiono połączenia z MySQL na laravel i MAMP

  3. Wybierz wiersz nadrzędny tylko wtedy, gdy nie ma w nim dzieci

  4. Jak dynamicznie wygenerować stronę HTML za pomocą PHP?

  5. Django grupuj według dat i wartości SUMA