Некоторое время назад я спросил вопрос о вложенных циклах на 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
хорошо, теперь я получил все это в массиве или наборе строк, и теперь мне нужно отобразить что-то вроде этого:
фрукты
- желтый банан
- красное яблоко
животные
- черно-белая зебра
- серый слон
- рыжая лиса
планеты
- голубая земля
- красный Марс
кажется очевидным, что это должно работать, но я уже несколько раз пытался обдумать это, и я просто не могу найти решение.
На данный момент я делаю это по-старому:
query groups foreach groups { query animals in group foreach animal }
но эй, НИКОГДА, НИКОГДА, НИКОГДА не помещайте sql в цикл. так что мне делать? Я делаю PHP, но я думаю, что это мета-вопрос.