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 della procedura AMICI_COMUNI che richiama AMICI_DIcodice: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: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
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à.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

Rispondi quotando