【发布时间】:2014-06-14 03:49:53
【问题描述】:
我有一个包含父页面和子页面的表,其中首页是 parent_id = 0,子页面 parent_id 是其他页面的 id。
ID 1 | parent_id 0
ID 2 | parent_id 0
ID 3 | Parent_id 1
ID 4 | parent_id 1
ID 5 | parent_id 0
所以我有
SELECT *
FROM pages AS parent
WHERE parent.parent_id = 0
SELECT *
FROM pages AS sub
WHERE sub.parent_id != 0
上述单独查询的工作。但我敢肯定,可以通过一个查询列出所有页面。
我正在尝试获取与此类似的列表,将子页面分组到父页面
Main (Title1)
Main (Title2)
SUB (Title1)
SUB (Tible2)
Main (Title3)
etc
我一直在尝试内连接和左连接,但我无法解决这个问题。
我希望有经验的好心人能帮我一把。 :)
谢谢
【问题讨论】:
-
我建议查看 SQL 的 groupby 函数。如果您列出您尝试过的一些东西(实际代码),那么有人可以为您调整。
-
select * from yourtable将列出所有内容。如果您希望它采用树形结构,这取决于您。 SQL 不做“树”。它会处理数据集。 -
当您在所需输出中的“SUB”之前有缩进时......这代表什么?这是否意味着您希望 mySQL 结果以某种方式格式化?因为那不可能发生。这是否只是意味着您希望按照所需输出的排序方式对结果进行排序?因为这是可行的,但它需要在 SQL 中进行一些疯狂的恶作剧才能成功。你最好把所有东西都拿出来用 PHP 做。
-
你好。是的,我会做些什么来以“树”的方式获得列表。在 php 中,我通过两个查询和循环来提取我需要的内容。我正在寻找一种方法来对一个查询和一个优化查询的循环执行相同的操作。无论如何,这就是我的目标:)
标签: php mysql sql codeigniter