Eu provavelmente usaria um
LEFT JOIN
, que retornará linhas mesmo se não houver correspondência e, em seguida, você poderá selecionar apenas as linhas sem correspondência verificando NULL
s. Então, algo como:
SELECT V.*
FROM voter V LEFT JOIN elimination E ON V.id = E.voter_id
WHERE E.voter_id IS NULL
Se isso é mais ou menos eficiente do que usar uma subconsulta depende da otimização, índices, se é possível ter mais de uma eliminação por eleitor, etc.