Ciao a tutti, sono alle primissime armi con MySQL... finora mi sono trovato a dover usare solo select, delete e insert, ma ora ho bisogno di fare qualcosa di più complesso... il mio professore di informatica mi ha scritto un codice in SQL ma devo tradurlo in MySQL e ho delle difficoltà, potreste aiutarmi?

Codice della procedura AMICI_DI
codice:
DROP PROCEDURE `AMICI_DI`//
CREATE DEFINER=`root`@`localhost` PROCEDURE `AMICI_DI`(IN x INT, OUT y INT)
(SELECT id2 FROM friends WHERE id1 = x)
UNION
(SELECT id1 FROM friends WHERE id2 = x)
Codice della procedura AMICI_COMUNI che richiama AMICI_DI
codice:
DROP PROCEDURE IF EXISTS `AMICI_COMUNI` ;
CREATE DEFINER=`root`@`localhost` PROCEDURE `AMICI_COMUNI`(IN x INT, IN y INT)

   DELETE FROM amici_X ;
   DELETE FROM amici_Y ;
   DELETE FROM amici_XY ;
   DELETE FROM amici_consigliati ;

   INSERT INTO amici_X (id_amico) VALUES SELECT * FROM AMICI_DI(x)  ;
   INSERT INTO amici_Y (id_amico) VALUES SELECT * FROM AMICI_DI(y) ;
   INSERT INTO amici_XY (id_amico) VALUES SELECT * FROM amici_X WHERE id_amico IN (SELECT id_amico FROM amici_Y) ;

QUESTO L'ERRORE
codice:
Errore
query SQL: 

INSERT INTO amici_X( id_amico ) 
VALUES SELECT * 
FROM AMICI_DI[COLOR = blue](

x
)[ / COLOR];

Messaggio di MySQL: 

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM AMICI_DI(x)' at line 1
Mi sembra ovvio che sbaglio a richiamare la procedura AMICI_DI e a passarle i parametri, ma non so come fare... Ringrazio in anticipo chi mi aiuterà.