Есть ли у них что-то, что может «раскрепостить» результаты запроса SQL / MySQL в массив объектов PHP, создавая структуру родительских и дочерних отношений?
Часто я обнаруживаю, что выполнение запросов к моей базе данных для быстрого результата родитель / потомок должно быть выполнено с двумя запросами. Один, чтобы схватить родителей, другой, чтобы схватить детей. Для сложных запросов это иногда может быть немного медленным (даже при правильной индексации и т. Д.).
Гораздо быстрее просто заразить БД одним запросом - и получить данные моего родителя / ребенка в одном ответе. Интересно, есть ли общий способ объединить вещи, потому что я хотел бы делать это чаще ...
Простой пример:
SELECT CountryID, Country, CityID, City FROM country INNER JOIN city ON city.CountryID = country.CountryID ORDER BY CountryID
Результаты запроса:
1, США, 50, Нью-Йорк
1, США, 51, Лас-Вегас
2, Австралия, 52, Сидней
И потом объектная структура будет (я только что разбил ее в формате XML для удобства чтения структуры объекта, которую я надеюсь получить):
<Results>
<Country ID="1" Name="USA">
<Children>
<City ID="50" Name="New York"/>
<City ID="51" Name="Las Vegas"/>
</Children>
<Country ID="2" Name="Australia"/>
<Children>
<City ID="52" Name="Sydney"/>
</Children>
</Country>
</Results>
Я был бы великолепен, если бы это было возможно, возможно, даже с бесконечной глубиной то есть отношения между родителями, детьми, детьми и детьми ...
Ура, Люк!