Sql查询按父ID选择[重复]
Posted
技术标签:
【中文标题】Sql查询按父ID选择[重复]【英文标题】:Sql query select by parent id [duplicate] 【发布时间】:2021-11-22 00:50:03 【问题描述】:我需要从这样的表中选择数据(只是示例)。
我想选择像 Category1,Category2,Category3 这样的格式的数据,没有 parent_id 的根
id_category | name | parent_id |
---|---|---|
1 | root | 1 |
2 | Graphic card | 1 |
3 | Memory | 1 |
4 | DDR3 | 3 |
5 | Corsair | 4 |
6 | HyperX | 4 |
结果应该是
category1 | category2 | category3 |
---|---|---|
GraphicCard | null | null |
Memory | DDR3 | Corsair |
Memory | DDR3 | HyperX |
【问题讨论】:
您可以在 mysql 中使用 CTE(公用表表达式):dev.mysql.com/doc/refman/8.0/en/with.html 查看 Hierarchical Data Traversal,如果您在 SELECT 方面需要进一步帮助,请留下评论,我会在这里为您提供帮助。 【参考方案1】:这种行为可以使用自连接来实现。 这应该可以解决问题:
select a.name as category1, b.name as category2, c.name as category3
from yourtable a
left join yourtable b on a.id_category = b.parent_id
left join yourtable c on b.id_category = c.parent_id
where a.id_category in (2,3);
【讨论】:
以上是关于Sql查询按父ID选择[重复]的主要内容,如果未能解决你的问题,请参考以下文章