前言:开发常用的关系型数据库MySQL,mssql,postgre,Oracle,简单的增删改查的SQL语句都与标准SQL兼容,这个不用讲,那么对于迭代查询(不严格的叫法:递归查询)每种数据库都不一样,对于标准SQL语句支持最好的是mssql和postgre,这个不需多讲,我们只讲讲单表情况下的postgre如何通过迭代查询获取有层级关系的数据. 一.表结构举例 MENU表 ID VARCHAR2(32) N sys_guid() 节点idFENXID VARCHAR2(32)
[需求]某用户只能查看其自己信息及其下级信息,涉及通过该用户所在部门获取其下所有部门(多层)id集合. 步骤一:对数据库进行设置: set global log_bin_trust_function_creators=TRUE; 可以在Navicate点击工具栏的[工具]-> [命令行界面]执行以上语句:也可以在服务器上进入数据库执行. 步骤二:执行以下sql语句,生成sql方法. (1)需求一,获取父级及子级id: CREATE FUNCTION `getChildList`(`rootId`