Alternativa alla clausola NOT IN in query con Microsoft Access

Se avete avuto modo di lavorare con Access su tabelle di qualche centinaia di migliaia di righe, spero non abbiate mai utilizzato la clausola NOT IN, altrimenti avreste dovuto lasciare il pc acceso tutta la notte in attesa del risultato…

Fortunatamente, esistono soluzioni decisamente più efficienti per arrivare allo stesso risultato (parliamo di tempi di elaborazione che si abbassano da ore a secondi).

Bene  basta chiacchiere, passiamo al dunque:

Obiettivo: estrarre tutti i record della tabella A che non sono contenuti nella tabella B

Query con clausola NOT IN:

SELECT tab_a.*
FROM tab_a where tab_a.COD_CONTRATTO NOT IN (SELECT tab_b.COD_CONTRATTO
FROM tab_b)

Query equivalente SENZA NOT IN:

SELECT tab_a.*
FROM tab_a LEFT JOIN [tab_b] ON tab_a.COD_CONTRATTO = [tab_b].COD_CONTRATTO
WHERE [tab_b].COD_CONTRATTO is null;

Provate e…ringraziatemi 😎

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

wp-puzzle.com logo