问题不是很好描述,我尽量说清楚吧。我有一张表tbl_a,其中有字段a,b,c,其中a是主键,b,c字段可为空。另外有一张表记做tbl_b,其中有字段b,d,e,b为主键。两张表以字段b做联合查询:select a.*,b.* from tbl_a a, tbl_b b where a.b = b.b;但是这个查询结果仅仅是a表在b字段不为空的情况下得到的结果集;
我现在想得到的结果集里也包含b字段为空的情况,而b表的所有字段在b为空的情况下也全部为空,即结果集里也包含类似如下的记录:
a.a,'',a.c,'','','';很菜,请不吝赐教这个SQL该怎么写,多谢了。
我现在想得到的结果集里也包含b字段为空的情况,而b表的所有字段在b为空的情况下也全部为空,即结果集里也包含类似如下的记录:
a.a,'',a.c,'','','';很菜,请不吝赐教这个SQL该怎么写,多谢了。
你可以用赋个不可能在b.b里出现的值来比较,为NULL的字段比较会有问题的
select a.*,b.* from tbl_a a, tbl_b b where nvl(a.b,不会出现的值) = b.b(+);
select a.*,b.* from tbl_a a left join tbl_b b on a.b = b.b;
select a.*,b.* from tbl_a a left join tbl_b b on a.b = b.b;