我在使用此数据结构模型的类别中有一个表。还可以使用另一个表来显示类别分支的路径:

**t_category**
id | name | parent
------------------
1   mascot   null
2   cat      1
3   dog      1
4   doberman 3

**t_category_path**
id | path
------------------
1   /1/
2   /1/2/
3   /1/3/
4   /1/3/4/

我要的是得到任何物品的父母名单。例如,如果我搜索“dog”得到“dog,mascot”,如果我搜索“doberman”得到“doberman,dog,mascot”
我试过这个。。。但事实恰恰相反,我是说,寻找父母得到树叶:
SELECT
    c2.id,
    c2.name,
    p.path
FROM t_category c, t_category c2, t_category_path p, t_category_path p2
WHERE c.id = 1
AND p2.id = c.id
AND p.path LIKE(CONCAT(p2.path,'%'))
AND c2.id = p.id
ORDER BY p.path ASC;

显然得到:
id | name | path
------------------
1   mascot   /1/
2   cat      /1/2/
3   dog      /1/3/
4   doberman /1/3/4/

但我想从“杜宾”那里得到:
id | name | path
------------------
1   mascot   /1/
3   dog      /1/3/
4   doberman /1/3/4/

可以从叶子上咨询吗?

最佳答案

您可能应该在“路径”字段中分解所描绘的数据。使用这样的东西:

id | depth | parent
4    2       3
4    1       1
3    1       1
3    2       3

发射型计算机断层扫描仪。。。
然后你可以:
从id=4的t_category_path中选择*

关于mysql - Mysql Adjacency:获取所有叶子的 parent ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11886756/

10-16 15:37