StringBuilder sql = new StringBuilder("select accountId, concat( ',', GROUP_CONCAT(FIND_IN_SET(campusId,'").append(joinIds).append("') ) , ',' ) idx " )
.append(" from org_campus_account GROUP BY accountId having idx not like '%,0,%';" );
所有校区joinIds
查询出
org_campus_account 这个表中所有在这个去所有校区中的一条记录。
如果joinIds是一个人拥有的校区1,2,3,4,5
那么查询的结果就是这个org_campus_account 表中所有在1,2,3,4,5中的校区,查询出来的校区,同一个人的所有校区都包含在12345中,如果12345中没有,那么就排除。
如:2,6,这个就不要(idx not like '%,0,%') 这个条件就是排除的,
Org_campus_account中村的数据就是校区和人员的关系
这个sql为了拿到登陆的这个人只能看到他管理校区下的所有人。
他不管理的看不到
总后的结果需要在查询数据中作为条件
需要把这些accountId 作为条件
查询出所有的人,但是这些人的条件是我上边查询出的人的范围中。最后查询出的结果就是我管理的人员。
Select * from xxx where accountId in (这个sql查询出的结果的人员的拼接())