Den enkleste måde er med eksisterer ikke
eller tilslut til venstre
:
select u.*
from users u left join
addresses a
on a.username = u.username and
a.city = 'Peoria'
where a.city is null;
Den venstre join
opbevarer alle registreringer i brugere og eventuelle poster i adresser
der matcher on
betingelser. I dette tilfælde (fordi bynavnet er i on
). betingelse), returnerer den alle brugere med enten information om byerne eller NULL
værdier. NULL
værdier -- de ikke-matchende.
Den tilsvarende findes ikke
kan være lettere at følge:
select u.*
from users u
where not exists (select 1
from addresses a
where a.username = u.username and
a.city = 'Peoria'
);