ancestry,
descendants
DELETE
FROM aps_resource_relation
WHERE descendants IN (SELECT
temp.descendants
FROM (SELECT
descendants
FROM aps_resource_relation
WHERE ancestry = #{descendants}) temp)
AND ancestry IN (SELECT
temp.ancestry
FROM (SELECT
ancestry
FROM
aps_resource_relation
WHERE descendants = #{descendants}
AND ancestry != descendants) temp);
INSERT INTO aps_resource_relation (ancestry, descendants)
SELECT
a.ancestry,
b.descendants
FROM aps_resource_relation a
CROSS JOIN aps_resource_relation b
WHERE a.descendants = #{ancestry}
AND b.ancestry = #{descendants};
DELETE
FROM
aps_resource_relation
WHERE descendants IN (
SELECT
temp.descendants
FROM
(SELECT
descendants
FROM
aps_resource_relation
WHERE
ancestry = #{id}) temp)