I can write a query to solve my requirement in any of the followings :- 1. select * from a where NOT EXISTS ( select 1 from b where a.id = b.id) union all select * from b
2. select ( case when b.id is not null then b.id else a.id ) as id from a left join b on a.id = b.id Any one please tell me which one is better?