多对多匹配是否包含对应的id

该博客讨论了一个SQL查询,其目的是确保某个部门下的业务员无法继续跟进客户。查询通过使用LEFT JOIN和正则表达式来匹配和排除特定部门的业务员。这涉及到多对多关系的处理以及对数据库表b_customer_info、b_customer_salesman和b_tenant_employee的联接操作。
摘要由CSDN通过智能技术生成

一个客户名下有多个业务员在跟,而一个业务员,又可以同时属于多个部门 需求:某个部门下的业务员,不能继续跟进客户.

直接上代码:
SELECT distinct ci.id
from b_customer_info ci
left join b_customer_salesman cs on ci.id = cs.customer_id
left JOIN b_tenant_employee te ON te.user_id = cs.salesman
where concat( te.org_id COLLATE utf8mb4_general_ci, ‘,’) REGEXP concat(replace((SELECT GROUP_CONCAT(distinct id) from t_s_org where is_big = true group by is_big) COLLATE utf8mb4_general_ci, ‘,’, ‘,|’), ‘,’) = 1
最核心的判断就是where条件中,用正则判断多对多是否包含即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值