我应该在sql或php中使用循环吗?

时间:2012-02-03 21:44:08

标签: php mysql hierarchical-data

  

可能重复:
  What is the most efficient/elegant way to parse a flat table into a tree?
  php / Mysql best tree structure

我的数据库中有一个表充满了组,每个组行都有一个父ID,直到最后一个父ID为0,形成一个金字塔。例如:

id:1 姓名:员工 父母:0

id:2 名称:通讯团队 父母:1

id:3 名称:网络部门 父母:2

现在可以继续下去,所以我想要做的是使用一个sql语句给出web部门ID,它将拉出所有父组,直到父级为0.

在sql语句中是否可以?我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

我认为你根本不需要循环......就像在T-SQL中这样的东西:

SELECT id, name, parent
FROM tablename
WHERE parent <= (select parent from tablename where name = 'staff')
ORDER BY parent;

这应该返回父id小于或等于staff的父id的所有行。如果您希望以其他方式进行排序,请使用ORDER BY父ASC。

答案 1 :(得分:0)

从sql中提取您可能需要的所有内容,然后在PHP中使用递归函数来遍历结果。寻找PHP递归树。