Jeg ville sandsynligvis bruge en LEFT JOIN
, som vil returnere rækker, selvom der ikke er noget match, og så kan du kun vælge rækker uden match ved at markere for NULL
s.
Altså noget som:
SELECT V.*
FROM voter V LEFT JOIN elimination E ON V.id = E.voter_id
WHERE E.voter_id IS NULL
Om det er mere eller mindre effektivt end at bruge en underforespørgsel afhænger af optimering, indekser, om det er muligt at have mere end én eliminering pr. vælger osv.