1

我在 MySQL 中有一个表:

id       name        parent_id
1        animals       null
2        mammal         1
3        feline         2
4        human          2
5        cat            3
6        invertebrate   1
7        snake          6
8        objects        null
etc..

我想要一个按以下顺序显示结果的 MySQL 查询:

    Animals
       Mammal
          Feline
             Cat
          Human
       Invertebrate
    Objects
etc..

我还在学习,完全坚持这个。

4

2 回答 2

2

如果你想显示一个嵌套层数不定的树结构,我认为你需要在其他语言中使用 mysql。使用 mysql 和 PHP,这可以通过一对嵌套的“while”和“if”循环来完成。但正如 Iouri 所说,“纯粹的”Mysql 方法(例如将表连接回自身)将仅支持与您拥有的连接数量一样多的嵌套级别。

SELECT 
    t1.name, t2.name, t3.name
FROM table t1
    JOIN table t2 ON t2.parent_id = t1.id
    JOIN table t3 ON t3.parent_id = t2.id
    # etc.
于 2012-10-10T18:58:47.553 回答
1

这可能会有所帮助:

http://sqllessons.com/categories.html

我认为它假设您有一定数量的嵌套级别。

于 2012-10-10T18:52:57.447 回答