mysql目录树

wz1wpwve  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(271)

这个问题在这里已经有答案了

如何创建mysql分层递归查询(15个答案)
两年前关门了。
我有一个mysql标签,我正在尝试获取主类别的id和每个链接到它的子类别的id,以及其他链接到这个子类别的id。。。您可以看到以下示例:

  1. +----------------------+
  2. | Catrgorias |
  3. +----------------------+
  4. | id (int 11) |
  5. +----------------------+
  6. | nombre (varchar 255) |
  7. +----------------------+
  8. | parent (int 11) |
  9. +----------------------+
  10. +----+------------+--------+
  11. | id | nombre | parent |
  12. +----+------------+--------+
  13. | 1 | Cat1 | NULL |
  14. +----+------------+--------+
  15. | 2 | Cat2. | NULL |
  16. +----+------------+--------+
  17. | 3 | SubCat1 | 1 |
  18. +----+------------+--------+
  19. | 4 | SubCat2 | 2 |
  20. +----+------------+--------+
  21. | 5 | SubSubCat1 | 3 |
  22. +----+------------+--------+

有没有人知道如何在mysql中获取这些id,并用这样的方法得到这个结果?
对于分类树(1)

  1. +----+ +-------+
  2. | id | | id |
  3. +----+ or +-------+
  4. | 1 | | 1,3,5 |
  5. +----+ +-------+
  6. | 3 |
  7. +----+
  8. | 5 |
  9. +----+

对于分类树(2)

  1. +----+ +-----+
  2. | id | | id |
  3. +----+ or +-----+
  4. | 2 | | 2,4 |
  5. +----+ +-----+
  6. | 4 |
  7. +----+
8xiog9wr

8xiog9wr1#

您可以使用递归cte来实现这一点

  1. with cte as
  2. (
  3. SELECT ID
  4. FROM CATEGORY
  5. WHERE ID = %input
  6. UNION ALL
  7. SELECT ID
  8. FROM CATEGORY
  9. JOIN CTE ON PARENT = CTE.ID
  10. )
  11. SELECT * FROM CTE

相关问题