这个博客讨论了一种使用WITH语句在SQL中进行递归查询的方法,以获取某个父类目下所有子类目的完整列表。通过自定义结果名称并结合UNION ALL操作,可以有效地遍历层级结构,展示Id、Name和Pid字段,其中Id是主键,Name是类目名称,Pid表示父类主键。 摘要由CSDN通过智能技术生成 SELECT * FROM table_name WHERE Id=‘4’ --表的主键ID UNION ALL SELECT T0.* FROM TEMP,table_name T0 WHERE TEMP.Id=T0.ParentId -- 子级 ID== 父级 ID SELECT * FROM TEMP; –根据 指定 节点ID获取所有父节点– WITH TEMP AS SELECT * FROM table_name WHERE Id=‘3
格式:SELECT ... FROM + 表名 WHERE + 条件3 START WITH + 条件1 CONNECT BY PRIOR + 条件2 条件1: 表示从哪个节点开始查找, 也就是通过条件1 查询 到的数据, 作为后续 查询 的起始节点(参数). 条件2: 是连接条件,其中用PRIOR表示上一条记录,例如CONNECT BY PRIOR ID = PID,意思就是上一条记录的ID是本条记录...
-->Date :2009-09-30 08:52:38 set nocount on if object_id('tb','U')is not null drop table tb create table tb(ID int, ParentID int)... 下面展示一些 内联代码片。 select * from T_SYS_DIC start with dic_id = '1000076' CONNECT BY PRIOR dic_id = parent_dic_id 对应结果:可以看出所有数据均为父 id为 1000 t1.*, t2.*, IF(FIND_IN_SET(parent_id, @pids) > 0, @pids := CONCAT(@pids, ',', id), '0') AS isChild FROM ( SELECT * FROM rule_enti