LEFT JOIN sys_dept d1 ON d.pids LIKE CONCAT( '%', d1.id, '%' )
LEFT JOIN sys_dept d1 ON d.pids LIKE CONCAT( '%', d1.id, '%' ) and d1.DEL_FLAG = '0'
WHERE
d.id IN <foreachcollection="dataScopeDeptList"item="deptId"open="("separator=","close=")"> #{deptId} </foreach>
AND d1.pid = 0
and d.DEL_FLAG = '0'
GROUP BY d1.id
ORDER BY d1.create_date ASC
</select>
@ -147,8 +148,8 @@
SELECT
tem2.*
FROM
( SELECT * FROM sys_dept d1 WHERE d1.id IN <foreachcollection="dataScopeDeptList"item="item"open="("separator=","close=")"> #{item} </foreach> ) tem1,
( SELECT * FROM sys_dept d2 WHERE d2.pid IN <foreachcollection="parentDeptIdList"item="deptId"open="("separator=","close=")"> #{deptId} </foreach>) tem2
( SELECT * FROM sys_dept d1 WHERE DEL_FLAG = '0' and d1.id IN <foreachcollection="dataScopeDeptList"item="item"open="("separator=","close=")"> #{item} </foreach> ) tem1,
( SELECT * FROM sys_dept d2 WHERE DEL_FLAG = '0' and d2.pid IN <foreachcollection="parentDeptIdList"item="deptId"open="("separator=","close=")"> #{deptId} </foreach>) tem2
WHERE
( tem1.PIDS LIKE CONCAT( '%', tem2.id, '%' ) OR tem1.PID = tem2.ID )
OR ( tem2.ID = tem1.ID AND NOT EXISTS ( SELECT 1 FROM sys_dept d WHERE d.PID = tem2.ID ) )