本文主要是介绍sql 树状递归查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原文链接
经过测试 , 适用于postgresql , 都是根据父节点的 id 查询其下的子节点
第一种写法
WITH tableName
AS
(SELECT columnName, id, parent_id FROM tableName parent WHERE parent.id = ? -- parent_idUNION ALLSELECT son.columnName, son.id, son.parent_id FROM tableName sonINNER JOIN tableName tree ON son.parent_id = tree.id
)
SELECT * FROM tableName
第二种写法
WITH RECURSIVE tree(id,name,parent_id) AS(SELECT id,name,parent_id FROM tableName parent WHERE parent.id = ?UNION ALLSELECT son.id, son.name, son.parent_idFROM tableName sonJOIN tree ON son.parent_id = tree.id
)
SELECT id,name,parent_id FROM tree
查询时 , 具体输入 ? 的值即可
这篇关于sql 树状递归查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!