Jak*_*ake 18 mysql sql stored-procedures
所有,
我在表中有三个字段,用于定义MySQL数据库版本5.0中存在的父子关系.表名是tb_Tree,它具有以下数据:
Table Name: tb_Tree
Id | ParentId | Name
--------------------
1 | 0 | Fruits
2 | 0 | Vegetables
3 | 1 | Apple
4 | 1 | Orange
5 | 2 | Cabbage
6 | 2 | Eggplant
Run Code Online (Sandbox Code Playgroud)
如果指定了ParentId,如何编写查询以获取所有子项.请注意,给出的表条目只是示例数据,它们可以包含更多行.Oracle有一个"CONNECT BY PRIOR"子句,但我没有找到类似MySQL的东西.任何人都可以建议吗?
谢谢
小智 6
可能发帖晚了。
使用 MySQL8,您可以通过递归子句来实现它。这是一个例子。
with recursive cte (id, name, parent_id) as (
select id,
name,
parent_id
from products
where parent_id = 19
union all
select p.id,
p.name,
p.parent_id
from products p
inner join cte
on p.parent_id = cte.id
)
select * from cte;
Run Code Online (Sandbox Code Playgroud)
如需更多帮助,请找到另一个线程,希望它会对某人有所帮助。