Salve,
ho travato in rete questo esempio di query innestata con le seguenti tabelle:

RIUNIONE(CodR, Descrizione, DataRiunione)
DIPENDENTE(CodD, Nome, Cognome, DataNascita, Citta)
PARTECIPA RIUNIONE(CodD, CodR)

Testo interrogazione

Visualizzare il codice dei dipendenti che hanno partecipato sola-
mente alle riunioni alle quali ha partecipato il dipendente D100
(CodD='D100').


Soluzione

codice:
SELECT CodD FROM DIPENDENTE AS D WHERE CodD NOT IN (SELECT CodD FROM PARTECIPA_RIUNIONE WHERE CodR NOT IN (SELECT CodR FROM PARTECIPA_RIUNIONE WHERE CodD='D100'));
Non ho capito il ragionamento della doppia negazione.

Inoltre sempre sulle stesse tabelle, non ho capito la differenza concettuale di quest'altra interrogazione dalla precedente:

Testo interrogazione
Visualizzare il codice dei dipendenti che hanno partecipato a tutte e
sole le riunioni alle quali ha partecipato il dipendente D100 (CodD='D100').

Soluzione

codice:
SELECT CodD FROM PARTECIPA_RIUNIONE AND CodR IN (SELECT CodR FROM PARTECIPA_RIUNIONE WHERE CodD='D100') AND CodD NOT IN (SELECT CodD FROM PARTECIPA_RIUNIONE WHERE CodR NOT IN (SELECT CodR FROM PARTECIPA_RIUNIONE WHERE CodD='D100')) GROUP BY CodD HAVING COUNT(*)=(SELECT COUNT(*) FROM PARTECIPA_RIUNIONE WHERE CodD='D100')
C'è qualcuno che può darmi delle delucidazioni?