У меня есть две таблицы базы данных со структурой следующим образом:Извлечение вложенной карты сайта CMS - SQL-запрос?
page_info
- page_id (интермедиат)
- parent_page_id (интермедиат)
- page_title (VARCHAR)
page_order
- page_order_id (интермедиат)
- parent_page_id (интермедиат)
- page_id (интермедиат)
- page_order (интермедиат)
(FYI стол page_info был сильно вырублены от того, что на самом деле там, это единственные поля, которые здесь играют.)
Есть ли способ вытащить всю вложенную структуру в плоскую структуру в правильном порядке с одним, rel быстро быстрый SQL-запрос?
Фактическая проблема, которую я пытаюсь решить, - это текущая реализация, которую мы имеем, слишком медленна и слишком тесно связана с нашей CMS. В настоящее время тяжелая, уродливая рекурсивная PHP-функция используется для создания данных, и это вызывает узкие места в нашем приложении, поэтому, возможно, SQL-запрос, чтобы ускорить его, не обязательно является решением, но я бы хотел, однако, видеть мысли людей.
MySQL не может вернуть вложенные наборы результатов. Вы запрашиваете базу данных, вы получаете некоторые результаты. Если ваш PHP-скрипт, создающий карту сайта, медленный, подумайте о том, чтобы выполнить его в очереди, а затем кешировать результат. –
Хорошо известно о том, что «MySQL не может возвращать вложенные результирующие наборы». Я должен был быть более ясным в этом случае - мне нужен результирующий набор в плоской структуре. – davo0105
Это то, что вы хотите? http://stackoverflow.com/questions/20215744/how-to-create-a-mysql-hierarchical-recursive-query –