DELETE FROM sys_dept_relation WHERE descendant IN (SELECT temp.descendant FROM (SELECT descendant FROM sys_dept_relation WHERE ancestor = #{descendant}) temp) AND ancestor IN (SELECT temp.ancestor FROM (SELECT ancestor FROM sys_dept_relation WHERE descendant = #{descendant} AND ancestor != descendant) temp) DELETE FROM sys_dept_relation WHERE descendant IN ( SELECT temp.descendant FROM ( SELECT descendant FROM sys_dept_relation WHERE ancestor = #{id} ) temp ) INSERT INTO sys_dept_relation (ancestor, descendant) SELECT a.ancestor, b.descendant FROM sys_dept_relation a CROSS JOIN sys_dept_relation b WHERE a.descendant = #{ancestor} AND b.ancestor = #{descendant}