sql >> データベース >  >> RDS >> Mysql

MySQL / MariaDBリレーショナルテーブル内の特定の親ノードのすべての子(およびその子)を取得する

    これをチェックしてください。 @pv:='6'で指定した値は、そのすべての子孫を検索する親のIDに設定する必要があります。

    また、ライブでデモを更新 することもできます。

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

    親を持つ子を1つの列に表示するには、以下のクエリを使用します:

                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. mysqlデータベースを作成および移行するための初期化子を作成するにはどうすればよいですか?

    2. MS SQL Server 2008のポートを見つける方法は?

    3. コードにポップアップし続けるエラー(接続はすでに開いています)

    4. codeigniterのアクティブレコード