我有这个MySQL表格,我正在尝试获取主类别的ID,与之链接的每个子类别以及与之链接的其他子类别...您可以在下面看到一个示例:
+----------------------+
| Catrgorias |
+----------------------+
| id (int 11) |
+----------------------+
| nombre (varchar 255) |
+----------------------+
| parent (int 11) |
+----------------------+
+----+------------+--------+
| id | nombre | parent |
+----+------------+--------+
| 1 | Cat1 | NULL |
+----+------------+--------+
| 2 | Cat2. | NULL |
+----+------------+--------+
| 3 | SubCat1 | 1 |
+----+------------+--------+
| 4 | SubCat2 | 2 |
+----+------------+--------+
| 5 | SubSubCat1 | 3 |
+----+------------+--------+
有人知道如何在MySQL中获取这些ID并通过类似的方式获得此结果吗?
对于categort_tree(1)
+----+ +-------+
| id | | id |
+----+ or +-------+
| 1 | | 1,3,5 |
+----+ +-------+
| 3 |
+----+
| 5 |
+----+
对于categort_tree(2)
+----+ +-----+
| id | | id |
+----+ or +-----+
| 2 | | 2,4 |
+----+ +-----+
| 4 |
+----+
答案 0 :(得分:0)
您可以使用递归CTE来实现
with cte as
(
SELECT ID
FROM CATEGORY
WHERE ID = %input
UNION ALL
SELECT ID
FROM CATEGORY
JOIN CTE ON PARENT = CTE.ID
)
SELECT * FROM CTE