Jag skulle förmodligen använda en LEFT JOIN
, som returnerar rader även om det inte finns någon matchning, och sedan kan du bara välja rader utan matchning genom att markera NULL
s.
Så, något i stil med:
SELECT V.*
FROM voter V LEFT JOIN elimination E ON V.id = E.voter_id
WHERE E.voter_id IS NULL
Huruvida det är mer eller mindre effektivt än att använda en underfråga beror på optimering, index, om det är möjligt att ha mer än en eliminering per väljare, etc.