我在使用此数据结构模型的类别中有一个表。还可以使用另一个表来显示类别分支的路径:
**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/