Cách đơn giản nhất là với not exists
hoặc 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
giữ tất cả các bản ghi trong người dùng và bất kỳ bản ghi nào trong các địa chỉ addresses
khớp với on
các điều kiện. Trong trường hợp này (vì tên thành phố có trong on
điều kiện), nó trả về cho tất cả người dùng thông tin về các thành phố hoặc NULL
các giá trị. where
mệnh đề chọn NULL
giá trị - những giá trị không phù hợp.
not exists
có thể dễ theo dõi hơn:
select u.*
from users u
where not exists (select 1
from addresses a
where a.username = u.username and
a.city = 'Peoria'
);