正在检索嵌套CMS网站地图-SQL查询


Retrieving nested CMS sitemap - SQL query?

我有两个数据库表,其结构如下:

页面信息

  • page_id(int)
  • parent_page_id(int)
  • 页面标题(varchar)

页面订单

  • 页面订单id(int)
  • parent_page_id(int)
  • page_id(int)
  • 页面顺序(int)

(仅供参考,page_info表已从实际数据中大幅减少,但这些是这里唯一可用的字段。)

有没有一种方法可以通过一个相对快速的SQL查询以正确的顺序在平面结构中拉出整个嵌套结构?

我试图解决的实际问题是,我们目前的实施速度太慢,与CMS的结合太紧密。目前,一个沉重而丑陋的递归PHP函数被用来构建数据,这在我们的应用程序中造成了瓶颈,因此,也许用SQL查询来加速它不一定是解决方案,但我还是希望看到人们的想法。

下面的查询将返回所有页面的集合,然后使用php可以使用它。

SELECT page_info.page_id AS page_id, parent_page_id, page_title, page_order_id, parent_page_id, page_order
    FROM page_info INNER JOIN page_order
    ON page_info.page_id = page_order.page_id

这里你需要嵌套循环来读取它。

[注意:如果与您的问题无关,请告诉我]