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 に答える