我希望将祖父母置于树中,其状态设置为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
的记录答案 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