使用mysql查询

时间:2017-11-09 10:58:25

标签: mysql sql

我有一个名为'category'的mysql表,如下图所示。有一个parent_id字段引用父类别id,我们可以为每个类别添加n个子类别。有多个类别如' A-1'

enter image description here

我需要编写一个查询来从表中返回给定类别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行,如下所示

enter image description here

但是在这里我们可以看到这个列表中的所有类别都是A-1的孩子。但它并没有返回所有类别。我能解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

看起来所有孩子的id都大于父母。考虑到这一点,您可以更改您的查询,如下所示。

select @pv:=id as category_id, name, parent_id from category
where parent_id >@pv