Некоторое время назад я задал вопрос о вложенных циклах в 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, но я думаю, что это вопрос мета.