DROP PROCEDURE `deleteRelations`// CREATE DEFINER=`root`@`localhost` PROCEDURE `deleteRelations`(IN cid INT(10)) BEGIN CREATE TEMPORARY TABLE temptable SELECT * FROM tag_tag_rel WHERE parent_id IN ( SELECT parent_id FROM tag_tag_rel WHERE child_id =cid ) AND ( child_id = cid OR child_id IN ( SELECT child_id FROM tag_tag_rel WHERE parent_id =cid ) ); DELETE tag_tag_rel FROM tag_tag_rel RIGHT JOIN temptable ON tag_tag_rel.parent_id = temptable.parent_id AND tag_tag_rel.child_id = temptable.child_id; END