Salve a tutti,
probabilmente è di semplice risoluzione, e c'è un modi più semplice di quello che ho applicato io.
Dovrei fare in modo che non si verifichi la presenza di una coppia di valori su una riga.
Il codice mi serve per creare una vista, quindi non posso usare subquery nel from.
Avevo fatto in questo modo, ma non funzionava :

codice:
select 
annunci`.`ID_ANNUNCIO` AS `ID_ANNUNCIO`,
`login`.`ID_LOGIN` AS `ID_LOGIN`

 from `annunci` join `ricercatori` join `login` 

where
 `annunci`.`APERTO_SN` = 'S'
and `annunci`.`RITIRATO_SN` = 'N'
 and `annunci`.`FK_ID_LOGIN` <> `login`.`ID_LOGIN`
and `login`.`ATTIVO_SN` = 'S' 
and `ricercatori`.`FK_ID_LOGIN` = `login`.`ID_LOGIN`
 and `annunci`.`DATA_FINE` >= curdate() 
and (`annunci`.`ID_ANNUNCIO`,`login`.`ID_LOGIN`) NOT IN 

(select `annunci_candidati`.`FK_ID_ANNUNCIO`,`annunci_candidati`.`FK_ID_LOGIN` 
from `annunci_candidati`)
Mentre ho sistemato in questo modo, ma mi sembra un po pesante :

codice:
select 
`annunci`.`ID_ANNUNCIO` AS `ID_ANNUNCIO`,
`login`.`ID_LOGIN` AS `ID_LOGIN` 

from `annunci` join `ricercatori join `login` 

where 
`annunci`.`APERTO_SN` = 'S'
 and `annunci`.`RITIRATO_SN` = 'N'
 and `annunci`.`FK_ID_LOGIN` <> `login`.`ID_LOGIN`
 and `login`.`ATTIVO_SN` = 'S'
 and `ricercatori`.`FK_ID_LOGIN` = `login`.`ID_LOGIN`
 and `annunci`.`DATA_FINE` >= curdate()

 and concat(`annunci`.`ID_ANNUNCIO`,'-',`login`.`ID_LOGIN`) NOT IN

(select 
concat(`annunci_candidati`.`FK_ID_ANNUNCIO`,'-',`annunci_candidati`.`FK_ID_LOGIN`) from `annunci_candidati`)

group by `annunci`.`ID_ANNUNCIO`,`login`.`ID_LOGIN`
Grazie tante anticipatamente