我有一个MySQL表,如下所示:
id | name | parent_id
19 | category1 | 0
20 | category2 | 19
21 | category3 | 20
22 | category4 | 21
......
Run Code Online (Sandbox Code Playgroud)
现在,我想要一个MySQL查询,我只提供id [例如说'id = 19']然后我应该得到它的所有子id [即结果应该有id',21,22']. ...而且,孩子们的等级不知道它可以变化....
另外,我已经有了使用for循环的解决方案.....如果可能的话,让我知道如何使用单个MySQL查询来实现相同的功能.
我对SQL很陌生,试图绕过它,但它有点令人困惑.这是我正在使用的简化版本.
我有这个表叫people:
+----+------------+-----------+
| id | name | parent_id |
+----+------------+-----------+
| 1 | Bob | 3 |
| 2 | John | 5 |
| 3 | Larry | 4 |
| 4 | Kevin | 0 |
| 5 | Kyle | 0 |
| 6 | Jason | 5 |
| 7 | Mildred | 4 |
| 8 | Mabel | 6 |
+----+------------+-----------+
Run Code Online (Sandbox Code Playgroud)
上表是一份人员名单.他们的parent_id列指的是他们的父母是谁.如果桌子上没有父母,则他们的parent_id为0.
现在,我希望能够获得每组人员的单独列表:祖父母,子女和孙子女.
很容易得到祖父母(拉里和凯文),我可以这样查询:
SELECT name FROM people WHERE parent_id = …Run Code Online (Sandbox Code Playgroud)