Skip to content Skip to sidebar Skip to footer

If In Mysql Insert Statement

I would like to do this kind of thing: IF ((19, 13) NOT IN (select idUtente, IdLezione from partecipa)) THEN insert into partecipa (IdUtente, IdLezione, IdAbbonamento, uten

Solution 1:

Try this:

INSERT INTO partecipa (IdUtente, 
                       IdLezione, 
                       IdAbbonamento, 
                       utente,  
                       prova, 
                       riserva)
SELECT 
  19, 
  13, 
  ab.idAbbonamento,  
  concat(u.nome, ' ', u.cognome), 
  0, 
  0
FROM abbonamento       AS ab 
INNER JOIN abbonamento AS a  ON ab.attivo   = a.attivo 
                            AND ab.idUtente = a.idUtente
INNER JOIN utente      AS u  ON a.idUtente  = u.idUtente 
WHERE a.attivo   = 1
  AND u.idUtente = 19
  AND NOT EXISTS(SELECT 1 
                 FROM partecipa 
                 WHERE idUtente  = 19 
                   AND IdLezione = 13);

Post a Comment for "If In Mysql Insert Statement"