问下这段sql应该怎么写

问下这段sql应该怎么写呀,一张人员表,一张机构表,在人员表根据人员名称获取人员所在机构的机构号,比如是11,但是这个机构旗下还有其他机构,是112,113,。。。请问怎么用like根据人员名称获取机构表中的机构名称以及其旗下的机构

select jgbh,jgmc from jg

where jgbh like (select jgbh from fr_ry where rymc='${fine_username}')

暂时写到这个,这个只能获取这个人员所在机构,不能获取旗下的机构,百分号应该怎么加

目前最笨的办法:

select jgbh,jgmc from jg

where substr(jgbh,1,2) = (select jgbh from fr_ry where rymc='${fine_username}')

or

substr(jgbh,1,3) = (select jgbh from fr_ry where rymc='${fine_username}')

or

substr(jgbh,1,4) = (select jgbh from fr_ry where rymc='${fine_username}')

有更好的sql吗

冰雨咖啡 发布于 2021-7-15 18:04 (编辑于 2021-7-15 18:10)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
shirokoLv6资深互助
发布于2021-7-16 08:21

select jgbh,jgmc from jg

where substr(jgbh,1,(select length(jgbh) from fr_ry where rymc='${fine_username}')) = (select jgbh from fr_ry where rymc='${fine_username}')

最佳回答
0
杨朝健Lv5中级互助
发布于2021-7-15 18:10

select jgbh,jgmc from jg

where jgbh like (select jgbh||'%' from fr_ry where rymc='${fine_username}')

最佳回答
0
用户a8068717Lv4初级互助
发布于2021-7-15 18:10
动态只能用left
最佳回答
0
祈LLv6中级互助
发布于2021-7-15 18:12

我猜你的旗下应该是11、1101、110101这种吧,那为什么不做个层级关联,这样不会很乱吗

最佳回答
0
用户DD3ry6536177Lv2见习互助
发布于2021-7-16 12:37
一般机构部门表里面都会有该部门对应的上一级部门id,这样只需要在机构表查上级部门id是11的数据就是关联部门了。
  • 4关注人数
  • 459浏览人数
  • 最后回答于:2021-7-16 12:37
    请选择关闭问题的原因
    确定 取消
    返回顶部