#### 在GORM的官方文档中未看到递归查询语句的写法,请问各位gopher,是否知道如何写一个语句支持递归查询?
如:在一个数据表中id 和pid,父对象的id为子对象的pid,如何通过一次查询查询出所有id=xx的子对象及孙对象一直到对后的叶节点?
更多评论
用GO来处理:
var menu []ArticleNode
_ = db.Where("pid=? and ischeck=?", pid, 1).Order("sort DESC").Find(&menu).Error
treeList := []*TreeList{}
for _, v := range menu {
child := v.GetAllNodeNoCache(v.Id)
node := &TreeList{
Id: v.Id,
Title: v.Title,
Slug: v.Slug,
Pid: v.Pid,
Ischeck: v.Ischeck,
}
node.Children = child
treeList = append(treeList, node)
}
return treeList
#1