SELECT
GROUP_CONCAT(DISTINCT sd.dept_name SEPARATOR '/' ) AS deptName,
aa.dept_id,
su.user_id,
GROUP_CONCAT( DISTINCT sp.post_name ) AS postName
FROM
(
SELECT
dept_id,
SUBSTRING_INDEX( SUBSTRING_INDEX( CONCAT( ancestors, ',', dept_id ), ',', n ), ',', - 1 ) AS item
FROM
sys_dept,
( SELECT @rownum := @rownum + 1 AS n FROM ( SELECT @rownum := 0 ) r, sys_dept ) x
WHERE
dept_id = 105
AND n <= (
LENGTH( CONCAT( ancestors, ',', dept_id ) ) - LENGTH(
REPLACE ( CONCAT( ancestors, ',', dept_id ), ',', '' )) + 1
)) aa
LEFT JOIN sys_dept sd ON aa.item = sd.dept_id
LEFT JOIN sys_user su ON su.dept_id = su.dept_id
LEFT JOIN sys_user_post sup ON sup.user_id = su.user_id
LEFT JOIN sys_post sp ON sp.post_id = sup.post_id
WHERE
su.user_id = 2