Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL Join, wo es nicht existiert

Ich würde wahrscheinlich einen LEFT JOIN verwenden , die Zeilen zurückgibt, auch wenn es keine Übereinstimmung gibt, und dann können Sie nur die Zeilen ohne Übereinstimmung auswählen, indem Sie nach NULL suchen s.

Also so etwas wie:

SELECT V.*
FROM voter V LEFT JOIN elimination E ON V.id = E.voter_id
WHERE E.voter_id IS NULL

Ob das mehr oder weniger effizient ist als die Verwendung einer Unterabfrage, hängt von der Optimierung, den Indizes ab, ob es möglich ist, mehr als eine Eliminierung pro Wähler zu haben, etc.