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

MySQLは、いくつあるかに関係なく、すべての子をカウントします

    (ネストされたループ/クエリには多数のアプローチがあります。構造変更のアイデアは、各カテゴリのすべての子を一覧表示する個別のテーブルを作成することです。また、直接の子だけでなく、サブも含まれるようにします。 -子供とサブサブ子供...1は子供2、2は子供3、1は子供3、3は子供5、1は子供5などです。)しかし、現在の状況では..

    1つのループ構造は次のようになります:

    結果セットを開始します。 ||親=0のすべてのカテゴリIDをクエリします。||それぞれを配列(X)に追加します。 ||結果セットを閉じます。

    配列(X)のIDごとに:

    • 新しいカウント変数(z)を確立します。
    • 新しい子ID配列(Y)を確立します。

    • 結果セットを開始します。 ||クエリカウント*カテゴリ=現在のIDxのすべてのアイテム||カウント変数(z)に追加||結果セットを閉じる。

    • 結果セットを開始します。 ||すべてのカテゴリIDをクエリします。ここで、親=現在のID x ||すべてを子ID配列(Y)に追加します。 ||結果セットを閉じます。

    • 子配列(Y)の長さ> 0

      • カテゴリIDy=配列の最初のアイテム(Y)

      • 結果セットを開始します。 ||親=現在のIDyであるすべてのカテゴリIDを照会します。 ||すべてを子ID配列(Y)に追加します。 ||結果セットを閉じます。

      • 結果セットを開始します。 ||クエリカウント*カテゴリ=現在のIDyのすべてのアイテム||カウント変数(z)に追加||結果セットを閉じる。

      • 配列から最初のアイテムを削除します(Y)

    • whileループを続ける

    • この時点で、カテゴリID xの最終的なアイテム数(z)が得られます...それを使って何かをしてから、forループを続行します

    forループの終了




    1. T-SQL分割文字列

    2. MySQLのsourceコマンドを使用してWindowsに大きなファイルをインポートするにはどうすればよいですか

    3. テーブルに2つの外部キーを含めることはできますか?

    4. pymysql fetchall()の結果は辞書になりますか?