我有一个Groups
表,大约有1000个组和子组,它们与parent_id
有关系我希望通过id选择他们的子组和子组的子组{{1}我有查询返回一个孩子,我希望通过单一查询返回所有级别的组是否可能,如果是,那么如何?
答案 0 :(得分:2)
根据您提供的内容,您可以执行以下操作:
SELECT a.group_name as 'Parent category', b.group_name as 'Sub-category 1' , c.group_name as 'Sub-category 2' , d.group_name as 'Sub-category 3' , e.group_name as 'Sub-category 4'
FROM Groups a
LEFT OUTER JOIN Groups b ON a.group_id = b.parent
LEFT OUTER JOIN Groups c ON b.parent = c.parent
LEFT OUTER JOIN Groups d ON c.parent = d.parent
LEFT OUTER JOIN Groups e ON d.parent = e.parent;
每个子组会有一个结果(一个连接会得到一个子类别)