Cara paling sederhana adalah dengan not exists
atau left join
:
select u.*
from users u left join
addresses a
on a.username = u.username and
a.city = 'Peoria'
where a.city is null;
left join
menyimpan semua catatan di pengguna dan catatan apa pun di addresses
yang cocok dengan on
kondisi. Dalam hal ini (karena nama kota ada di on
kondisi), ia mengembalikan semua pengguna dengan informasi tentang kota atau NULL
nilai-nilai. where
klausa memilih NULL
nilai -- nilai yang tidak cocok.
Setara not exists
mungkin lebih mudah diikuti:
select u.*
from users u
where not exists (select 1
from addresses a
where a.username = u.username and
a.city = 'Peoria'
);