sql server - SQL joins on Null values -
hi have 2 tables , b
table has 2 columns a1 (int) , a2(varchar(5)) table b has 2 columns b1 (int) , b2(varchar(5))
table has values
a1 a2 1 aaa null bbb 2 ccc 3 ddd table b has values as
b1 b2 1 app 2 new 3 disc i want result as
a1 a2 b2 1 aaa app null bbb null 2 ccc new 3 ddd disc note--
bear in mind im joining a1 b1 a1 has null , want null in result.
you can use called left join achieve these results. interpret it's functionality as:
give me rows table on left , if rows table on right fulfill conditions, join them. otherwise use
nullvalues in place.
so if select * left join b on ..., a on left , hence selected. b on right used if on condition satisfied. if isn't, null used in place of it's values, giving wanted!
i'd point out things might weird if b ever has null value b1. such, i'd add check this:
select a1, a2, b2 left join b on a1 not null , a1 = b1; you can see fiddle running here: http://sqlfiddle.com/#!9/5ca6d/5
edit: null thing doesn't seem cause problems in mysql 5.6 since null = null false (and null != null), i'd feel weird leaving unaccounted for..
Comments
Post a Comment