前言:开发常用的关系型数据库MySQL,mssql,postgre,Oracle,简单的增删改查的SQL语句都与标准SQL兼容,这个不用讲,那么对于迭代查询(不严格的叫法:递归查询)每种数据库都不一样,对于标准SQL语句支持最好的是mssql和postgre,这个不需多讲,我们只讲讲单表情况下的postgre如何通过迭代查询获取有层级关系的数据. 一.表结构举例 MENU表 ID VARCHAR2(32) N sys_guid() 节点idFENXID VARCHAR2(32)…
SQL迭代查询 PL/SQL with ORG_Tree(ObjectId,parentID) as ( select a.ObjectId,a.parentID from Ot_Organizationunit a where Name in ('江苏区域','浙江区域','苏州区域') Union ALL select b.ObjectId,b.parentID from Ot_Organizationunit b inner join ORG_Tree T on b.parentID=T.…
1.表结构 2.需求 查询某条记录的所有父亲节点,或者所有孩子节点. 3.向上查询(查询所有父亲节点) 注意,这里返回的记录包含自己. sql如下: WITH RECURSIVE res AS ( SELECT t1.* FROM t_code as t1 ' UNION SELECT t2.* from t_code as t2 INNER JOIN res as t3 ON t2.id = t3.parent_id WHERE t2.enable = 'true' )SELECT res.*…