少し前に、SO のネストされたループについて質問しましたが、例のループ内にクエリがあり、明確な答えが得られました。
ループ内に SQL クエリを入れないでください
それ以来、私は試してきましたが、ほとんどの場合うまくいきます。努力して、必要なものをすべて一度に取得するクエリを作成するだけです。
しかし、ネストされた方法で出力する必要があるネストされたデータを含む JOIN クエリからのデータセットがある場合はどうしますか?
テーブル A と B からの結合の例:
A.a | B.a | B.b
--------|----------|-------------
fruits | banana | yellow
fruits | apple | red
animals | zebra | black&white
animals | elefant | gray
animals | fox | red
planets | earth | blue
planets | mars | red
わかりました、配列または行セットですべてを取得したので、次のようなものを表示する必要があります。
果物
- 黄色いバナナ
- 赤いリンゴ
動物
- 黒と白のゼブラ
- グレーエレファント
- 赤狐
惑星
- 青い地球
- 赤い火星
それが機能することは明らかですが、私は今何度か頭を悩ませようとしましたが、解決策を思いつくことができません.
現時点では、私はそれを私の古い方法で行っています:
クエリ グループ foreach グループ { グループ内の動物のクエリ foreach 動物 }
でもねえ、絶対にSQLをループに入れないでください。じゃあどうすればいいの?私はPHPをやっていますが、これはメタな質問だと思います.