SELECT t1.name
FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL
D :Cosa sta succedendo qui?
A :Concettualmente, selezioniamo tutte le righe da table1
e per ogni riga cerchiamo di trovare una riga in table2
con lo stesso valore per il name
colonna. Se non esiste una tale riga, lasciamo semplicemente la table2
parte del nostro risultato è vuota per quella riga. Quindi limitiamo la nostra selezione selezionando solo quelle righe nel risultato in cui la riga corrispondente non esiste. Infine, ignoriamo tutti i campi del nostro risultato ad eccezione del name
colonna (quella che siamo sicuri che esista, da table1
).
Anche se potrebbe non essere il metodo più performante possibile in tutti i casi, dovrebbe funzionare praticamente in ogni motore di database che tenti di implementare ANSI 92 SQL