SQL递归在同一个表中查找父级

时间:2012-02-16 17:11:02

标签: mysql sql recursive-query

如何找到所有项目(mySQL)的parentId? (可能存在无限级别的层次结构......不是最好的设计,而是我正在使用的内容)

ID      PARENTID    NAME
9146    NULL        thing1
9147    NULL        thing2
9148    9146        thing3
9149    9148        thing4
9150    NULL        thing5
9151    9149        thing6
9152    9147        thing7

输出应为:

ID     REAL_PARENTID
9146   NULL (or self 9146)
9147   NULL (or self 9147)
9148   9146
9149   9146
9150   NULL (or self 9150)
9151   9146
9152   9147

2 个答案:

答案 0 :(得分:1)

我实际上使用MySQL存储过程编程编写了脚本树遍历。

我在DBA StackExchange back in Oct 24, 2011回答了这个问题。它还包括样本数据。

玩得开心。

答案 1 :(得分:0)

您可以使用SQL CTE表(递归查询)轻松完成此操作

选中此项以了解如何操作:

http://msdn.microsoft.com/en-us/library/ms186243.aspx