postgresql - AND/OR statements in SQL JOIN -
i have 2 tables: table1 , table2. can join them using id1 or id2. prefer use id1, in rows id1 missing, have use id2. following syntax correct:
select * table1 left join table2 b on (a.id1 not null , a.id1 = b.id1) or (a.id2 not null , a.id2 = b.id2) it returns some results want sure if valid haven't seen used before.
are there better ways this?
looks have decent answer in comments, toss possibility ring, run both queries , union them.
select * table1 left join table2 b on a.id1 = b.id1 union select * table1 left join table2 b on a.id2 = b.id2 the union eliminate duplicates between sets, , return records either condition true, or statement. performance wise, union little slower, gives easier control on sets. instance if want set 2 return results when id1 null, add clause. anyway hope helps.
Comments
Post a Comment