Probabilmente userei un LEFT JOIN
, che restituirà le righe anche se non ci sono corrispondenze, quindi puoi selezionare solo le righe senza corrispondenze controllando NULL
s.
Quindi, qualcosa come:
SELECT V.*
FROM voter V LEFT JOIN elimination E ON V.id = E.voter_id
WHERE E.voter_id IS NULL
Il fatto che sia più o meno efficiente rispetto all'utilizzo di una sottoquery dipende dall'ottimizzazione, dagli indici, dalla possibilità di avere più di un'eliminazione per elettore, ecc.