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

SQL自己結合クエリ?カテゴリサブカテゴリを取得する方法は?

    最大深度6(ルートを含む)の場合、これを使用できます

    select l0.catID,
        concat(
          case when l5.catID is null then '' else concat(l5.category, '/') end
        , case when l4.catID is null then '' else concat(l4.category, '/') end
        , case when l3.catID is null then '' else concat(l3.category, '/') end
        , case when l2.catID is null then '' else concat(l2.category, '/') end
        , case when l1.catID is null then '' else concat(l1.category, '/') end
        , l0.category)
    from catcat l0
    left join catcat l1 on l0.parentID=l1.catID
    left join catcat l2 on l1.parentID=l2.catID
    left join catcat l3 on l2.parentID=l3.catID
    left join catcat l4 on l3.parentID=l4.catID
    left join catcat l5 on l4.parentID=l5.catID
    

    最大深度を長くするには、必要に応じてパターンを展開します。



    1. GROUPBYを使用してアルファベット順を優先して結果セットを取得する方法

    2. データベースイベントを「リッスン」してページをリアルタイムで更新する方法はありますか?

    3. MYSQL列の作成におけるNULLとデフォルトのNULLとNULLのデフォルトのNULL?

    4. IF...WHERE句のELSEMySQL