我有一个名为'category'的mysql表,如下图所示。有一个parent_id字段引用父类别id,我们可以为每个类别添加n个子类别。有多个类别如' A-1'
我需要编写一个查询来从表中返回给定类别id的类别及其所有子类别。因此,它需要选择所有子类别和该子类别的子类,直到获取所有子类别child's.for this我写了下面的查询。
select @pv:=id as category_id, name, parent_id from category
join (select @pv:=1)tmp where parent_id=@pv
它只返回3行,如下所示
但是在这里我们可以看到这个列表中的所有类别都是A-1的孩子。但它并没有返回所有类别。我能解决这个问题吗?
答案 0 :(得分:0)
看起来所有孩子的id都大于父母。考虑到这一点,您可以更改您的查询,如下所示。
select @pv:=id as category_id, name, parent_id from category
where parent_id >@pv