我有一个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 server表结构:
ID Name ParentID
-----------------------
1 Root NULL
2 Business 1
3 Finance 1
4 Stock 3
Run Code Online (Sandbox Code Playgroud)
我想在我的网页中显示详细信息
ID Name ParentName
-------------------------
1 Root -
2 Business Root
3 Finance Root
4 Stock Finance
Run Code Online (Sandbox Code Playgroud)
如何构建我的SQL查询?请帮我.
我正在寻找一种解决方案,通过该解决方案,我可以获得父记录的所有子记录。我找到了一个满足我需求的解决方案,如下所示
唯一的问题是上述解决方案是连接 ID。
当前结果集
它是用逗号分隔的 ID 列,值 = 2,3,4
预期产出
ID Name ParentID
1 1st null
2 2nd 1
3 3rd 1
4 4th 2
Run Code Online (Sandbox Code Playgroud)
我试过下面的代码。
SELECT @pv:=
(SELECT * FROM tblreport WHERE ParentID IN (@pv)) AS lv FROM tblreport
JOIN
(SELECT @pv:=2)tmp
WHERE ParentID IN (@pv)
Run Code Online (Sandbox Code Playgroud)
并收到一条错误消息:操作数应包含 1 列