SELECT * FROM `websiteadmin_pm_categories` WHERE `username`='demo' LIMIT 0, 30 ;
立即输出:
id parent_id active_en name_en description_en link_en username
47 0 1 DVD demo
48 0 1 Spill demo
49 0 1 Utstyr demo
50 49 1 PC demo
51 47 1 Barnefilmer demo
应该是:
id parent_id active_en name_en description_en link_en username 47 0 1 DVD demo 51 47 1 Barnefilmer demo 48 0 1 Spill demo 49 0 1 Utstyr demo 50 49 1 PC demo
这里的问题是ID和PARENT_ID,PARENT_ID应该出现在它们所属的ID下。
答案 0 :(得分:0)
我不确定这种解决方案是否可行。如果在任何数据库中默认实现这一点,我会感到非常惊讶。
这种解决方案应该存在于显示逻辑而不是查询中,因为数据独立于ID和PARENT_ID之间的关系
答案 1 :(得分:0)
这个查询完全符合您的要求,但是这个查询只执行一级父/子层次结构...如果您想要更深层次的嵌套,它会变得更复杂,但可以完成第三级(I实际上今天早些时候这样做了。)
select *
from
websiteadmin_pm_categories w1
left join websiteadmin_pm_categories w2
on w1.parent_id = w2.id
WHERE
w1.username = 'demo'
order by
case when w1.parent_id = 0 then w1.id else w1.parent_id end,
w1.parent_id