猿问

父子sql表在php中显示为表

我有这样的表结构:


ID    Name     ParentId

-------------------------

1     Root      0

2     Business  1

3     Finance   2

4     Stock     3

5     Any       3

6     One       0

7     Two       6

有没有办法将所有关系都放在一行中?


像这样:


+------------------------------------------------------------------------------------+

|ID        | NAME       |    ID     | NAME      | ID       | NAME    | ID     | NAME |

|----------|------------|-----------|-----------|----------|---------|--------|------|

| 1        | Root       | 2         | Business  | 3        | Finance | 4      | Stock|

| 1        | Root       | 2         | Business  | 3        | Finance | 4      | Any  |     

| 1        | One        | 6         | Two       |          |         |        |      |


慕神8447489
浏览 114回答 2
2回答

绝地无双

假设您的表的名称为“htable”,并且只要有多达四 (4) 个层次结构,就可以使用自连接来完成:SELECT  level1.ID, level1.Name,         level2.ID, level2.Name,         level3.ID, level3.Name,         level4.ID, level4.NameFROM htable AS level1 LEFT JOIN htable AS level2 ON level1.ID = level2.ParentId LEFT JOIN htable AS level3 ON level2.ID = level3.ParentId LEFT JOIN htable AS level4 ON level3.ID = level4.ParentId;

牛魔王的故事

SELECT  level1.ID, level1.Name,         level2.ID, level2.Name,         level3.ID, level3.Name,         level4.ID, level4.NameFROM htable AS level1 LEFT JOIN htable AS level2 ON level1.ID = level2.ParentId LEFT JOIN htable AS level3 ON level2.ID = level3.ParentId LEFT JOIN htable AS level4 ON level3.ID = level4.ParentId;该查询返回不必要的 NULL,我只需要打印红色方形行。
随时随地看视频慕课网APP
我要回答