我有一个表,其中父页和子页,其中首页是parent_id = 0和子页parent_id是其他页的ID。MySQL select父母和孩子全部来自表
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功能。如果你列出了你试过的一些东西(实际的代码),那么有人可以为你调整。 – Robert
'select * from yourtable'将列出所有内容。如果你想要树形结构,这取决于你。 SQL不会做“树”。它会执行一组数据。 –
当您在所需输出中的“SUB”之前有缩进...这代表什么?这是否意味着你想以某种方式格式化mySQL结果?因为这不可能发生。这是否意味着你想按照你想要的输出顺序排列结果?因为这是可行的,但是它需要SQL中的一些疯狂的诡计来吸引人。你会更好地把所有东西都拿出来,并用PHP来完成工作。 –