我有一个表,我存储了一个树结构。基本上,家庭结构是获取孩子类的家庭树
Category > Sub category > sub sub category
父这里是一个与0 PARENT_ID我需要通过SQL获得任何类别的家庭结构。表看起来像
cat_id | parent_id | name
-------------------------
1 | 0 | a
2 | 0 | b
3 | 1 | c
4 | 2 | d
5 | 3 | e
6 | 4 | f
因此对于4 CAT_ID,该结果我需要的是
c1.cat_id | c.name | c2.cat_id | c2.name | c3.cat_id | c3.name
2 b 4 d null null
因此对于6 CAT_ID中,结果我需要的是
c1.cat_id | c.name | c2.cat_id | c2.name | c3.cat_id | c3.name
2 b 4 d 6 f
这是我目前使用的代码,它给出了每个结果不止一行
SELECT c1.name cat1, c1.cat_id cat1_id,c2.name cat2, c2.cat_id cat2_id ,c3.name cat3, c3.cat_id cat3_id
FROM ea_category AS c1
JOIN ea_category AS c2 ON (c2.parent_id = c1.cat_id)
JOIN ea_category AS c3 ON (c3.parent_id = 0)
where c1.cat_id = 4
我在做什么错
它给每个结果两行以上,因为有两只猫parent_id = 0',所以你最后一个'join'加入到他们两个 –
是的,我知道,但我只想要大孩子的父母 – Smith