mysql从表的最后一个子行获取父行

时间:2013-10-21 11:20:36

标签: mysql tree

我正在建立一个电子商务网站,其中类别管理起着重要作用。类别的表结构如下所示

category_id  |  category_name   |   parent_category_id 
------------------------------------------------------  
1            |  Shoes           |   NULL
2            |  Sports Shoes    |   1
3            |  Fila Shoes      |   2
4            |  Black Shoes     |   3

parent_category_id是category_id的外键引用

我想从最后一个孩子回溯到祖先。我的意思是这样的

黑鞋 - > Fila Shoes - >运动鞋 - >鞋

1 个答案:

答案 0 :(得分:0)

使用这种设计,只有一个查询无法做到这一点,除非您知道需要选择的确切节点数(在这种情况下,一个简单的JOIN就可以了。)< / p>

您可以为每个节点执行一个查询: SELECT parent_category_id,category_name WHERE category_id =;

如果您有很多节点并且经常执行此操作,您甚至可以考虑使用返回许多结果集的存储过程来执行此操作。

当然,标准SQL中的事情要简单得多,但MySQL不支持递归查询。