How do I find records that are not joined?
select * from a
left outer join b on a.id = b.a_id
where b.a_id is null
Another approach:
select * from a where not exists (select * from b where b.a_id = a.id)
The "exists" approach is useful if there is some other "where" clause you need to attach to the inner query.
The following image will help to understand SQL LET JOIN :
select * from a where id not in (select a_id from b)
Or like some other people on this thread says:
select a.* from a
left outer join b on a.id = b.a_id
where b.a_id is null