递归删除解除树状关系

业务背景:

      公司会员可以发展分销团队,两级分销内可以拥有一些业务规划的羊毛。

新需求:

      会员在入职公司员工后,需要解绑团队关系。

坑:

      团队关系是递归插入的,最末端节点依然与根节点有数据层面的联系
 

解觉方案:

     接口递归删除解除树状关系
 

代码片段:

 

		DELETE cc 
		FROM 
			tree cc,
		  (SELECT 
			c.memberKey,
			c.parentKey,
			c.`level`
		FROM tree c 
		INNER JOIN 
			tree c1 
		ON  c.memberKey = c1.memberKey 
		WHERE 
			c1.parentKey = #{memberKey}
		AND c1.`level` = #{level}
		AND c.`level` > #{level} ) ccc
		WHERE 
			cc.memberKey = ccc.memberKey 
		AND cc.parentKey = ccc.parentKey 
		AND cc.`level` = ccc.`level` ;

以上是对历史数据的处理,递归在代码中循环,主要实现业务,sql本身还存在优化空间,欢迎大佬点评

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值