Mysql - 从类别树中寻找祖父母

时间:2017-06-24 13:57:23

标签: php mysql sql

我希望将祖父母置于树中,其状态设置为1,当我们将子类别的id作为mysql查询中的where条件时

分类

id | parent_id | name        | status
-------------------------------------
1  | 0         | Cars        |0
2  | 0         | Planes      |0
3  | 1         | Hatchbacks  |1 
4  | 1         | Convertibles|1
5  | 2         | Jets        |1
6  | 3         | Peugeot     |0
7  | 3         | BMW         |1
8  | 6         | 206         |0
9  | 6         | 306         |0

在这个例子中,如果我有id = 8,那么结果得到id = 3

的记录

2 个答案:

答案 0 :(得分:0)

如上所述,双重自我加入正在发挥作用。 如果没有祖父母项目可用,则不会返回任何行 像你在例子中的Id = 4,有一个父项,但没有祖父项

SELECT catgrandparent.*
  FROM category catchild
 INNER JOIN category catparent
    ON catchild.parent_id = catparent.id
 INNER JOIN category catgrandparent
    ON catparent.parent_id = catgrandparent.id

答案 1 :(得分:0)

根据上述问题中的描述,请尝试执行以下SQL查询

例如,获取类别为id 8的祖父母

select c.* from category as a join category b on a .parent_id=b.id 
 join category c on c.id=b.parent_id where a.id=8