mysql根据业务条件查询所有的父子级
时间: 2024-11-22 18:36:44 浏览: 5
MySQL数据库高级查询和多表查询
5星 · 资源好评率100%
MySQL 中根据业务条件查询所有父子级的数据通常涉及到递归查询或者是使用自连接(self-join)结合WHERE条件。如果你有一个包含父子关系的表,比如`relations`表,它有两个字段:`parent_id`(父ID)和`child_id`(子ID),你可以编写这样的SQL查询:
```sql
WITH RECURSIVE hierarchy AS (
SELECT id, parent_id, child_id FROM relations
WHERE parent_id IS NOT NULL AND child_id = <你的起始子ID>
UNION ALL
SELECT r.id, r.parent_id, r.child_id
FROM relations r
JOIN hierarchy h ON r.parent_id = h.id
)
SELECT * FROM hierarchy;
```
这里的关键是使用了递归共同表达式(Recursive Common Table Expression,CTE),从指定的起始子节点开始,每次从`relations`表中选择出其父节点,直到没有父节点为止。
阅读全文