我们正在构建一个应用程序,客户端要求在每个父级下面用分隔符显示子级。
例如:我有下面两张table
category: category_description:
id(PK) | parent_id id(fk) | name
-------|---------- -------|--------
1 | 0 1 | Fruits
2 | 1 2 | Apple
3 | 1 3 | Orange
4 | 0 4 | Veggies
5 | 4 5 | Tomatoes
6 | 4 6 | Cucumber
and so on ...
结果如下表所示
ID | Name
---|-----
1 | Fruits
2 | Fruits > Apple
3 | Fruits > Orange
4 | Veggies
5 | Veggies > Tomatoes
6 | Veggies > Cucumber
and so on...
即使客户端随机插入,结果也应该如上所示。
我已尝试执行以下查询
SELECT c.category_id AS category_id, c.parent_id, c.sort_order,
GROUP_CONCAT(cd.name SEPARATOR ' > ') AS name FROM
category c LEFT JOIN category_description cd ON c.category_id =
cd.category_id LEFT JOIN category_description cd1 ON cd1.category_id =
c.parent_id GROUP BY c.category_id, cd.name
但没有显示预期的结果。请告诉我,我错在哪里。
希望我能解释得更好。提前谢谢
1条答案
按热度按时间mgdq6dx11#
我不知道你为什么聚集在这里;连接查询应该可以工作,假设只有一个级别的层次结构:
演示