oracle递归查询父级或子级转换成mysql的语句(1)

tm_org

WHERE

FIND_IN_SET(

id,

getChildrenOrg (“402882e55f813b35015f816362c70003”)

)

数据表名:tm_org,关键参与查询的字段,id、parent_id。

其中DELIMITER 定好结束符为"$$“, 然后最后又定义为”;“, MYSQL的默认结束符为”;".

创建函数如果在终端命令行或者在客户端执行sql语句的时候,有时候分号默认结束了,但是我们不希望结束,所以一定要使用这个结尾符,今天我就在这里卡了好久,以为无法创建函数。切记啊!

函数创建截图:

调用函数查询所有子级:

2.使用mysql查询所有父级。

mysql查询所有父级就是可以直接写sql语句了。

SELECT *

FROM (

SELECT

@r AS _id,

(SELECT @r := parent_id FROM tm_org WHERE id = _id) AS parent_id,

@l := @l + 1 AS lvl

FROM

(SELECT @r := “40288ac3643f18fe0164400878010017”, @l := 0) vars,

tm_org h

WHERE @r <> 0) T1

JOIN tm_org T2

ON T1._id = T2.id

ORDER BY id;

运行截图:

只需要把数据表的id写上去就行了。

结尾:附上今天我的修改并查询结果

代码:

SELECT DISTINCT t., t1.

FROM (

SELECT t.ID AS id, t.POSITION_CODE AS positionCode, t.POSITION_NAME AS positionName, t.POSITION_LEVEL AS positionLevel, t.ORG_ID AS orgId

, t1.org_name AS orgName, t.PARENT_ID AS parentId, t2.position_name AS parentName, t.BUSINESS_GROUP AS businessGroup, t.HEADSTRING AS headString

, t.ENABLE_STATUS AS enableStatus, t.UPDATE_NAME AS updateName, t.CREATE_NAME AS createName, t.UPDATE_DATE AS updateDate, t.CREATE_DATE AS createDate

, t.EXT_CHAR_1 AS extChar1, t.EXT_CHAR_2 AS extChar2, t.EXT_CHAR_3 AS extChar3, t.EXT_CHAR_4 AS extChar4, t.EXT_CHAR_5 AS extChar5

, t.EXT_NUMBER_1 AS extNumber1, t.EXT_NUMBER_2 AS extNumber2, t.EXT_NUMBER_3 AS extNumber3, t.EXT_DATE_1 AS extDate1, t.EXT_DATE_2 AS extDate2

FROM tm_position t

LEFT JOIN tm_org t1 ON t1.id = t.org_id

LEFT JOIN tm_position t2 ON t2.id = t.parent_id

WHERE 1 = 1

) t

LEFT JOIN (

SELECT p.id AS newId, o.org_name, o.id AS org_id, tmo.org_name AS parentOrgName, pp.position_code AS parentCode

, trup.is_main AS isMain, trup.user_id, tu.username AS userName, tu.fullname AS fullName, ptu.fullname AS parentUserName

, trup.id AS tmRPositionUserId

FROM tm_position p

LEFT JOIN tm_org o ON o.id = p.org_id

LEFT JOIN tm_r_user_position trup ON trup.position_id = p.id

LEFT JOIN tm_user tu ON tu.id = trup.user_id

LEFT JOIN tm_position pp ON pp.id = p.parent_id

LEFT JOIN tm_org tmo ON pp.org_id = tmo.id

LEFT JOIN tm_r_user_position ptup ON pp.id = ptup.position_id

LEFT JOIN tm_user ptu ON ptu.id = ptup.user_id

) t1

ON t1.newId = t.id

WHERE 1 = 1

AND t.orgId IN (

SELECT id

FROM (

SELECT @r AS _id

, (

SELECT @r := parent_id

FROM tm_org

WHERE id = _id

) AS parent_id, @l := @l + 1 AS lvl

FROM (

SELECT @r := “402882e55f813b35015f816362c70003”, @l := 0

) vars, tm_org h

WHERE @r <> 0

) T1

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

分享

首先分享一份学习大纲,内容较多,涵盖了互联网行业所有的流行以及核心技术,以截图形式分享:

(亿级流量性能调优实战+一线大厂分布式实战+架构师筑基必备技能+设计思想开源框架解读+性能直线提升架构技术+高效存储让项目性能起飞+分布式扩展到微服务架构…实在是太多了)

其次分享一些技术知识,以截图形式分享一部分:

Tomcat架构解析:

算法训练+高分宝典:

Spring Cloud+Docker微服务实战:

最后分享一波面试资料:

切莫死记硬背,小心面试官直接让你出门右拐

1000道互联网Java面试题:

Java高级架构面试知识整理:

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
1000道互联网Java面试题:

[外链图片转存中…(img-NVnhFLC5-1713347845998)]

Java高级架构面试知识整理:

[外链图片转存中…(img-rS50CmZq-1713347845999)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值