sql 问题求助!(70分)

  • 主题发起人 主题发起人 xeen
  • 开始时间 开始时间
X

xeen

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用连接查询,结果发现如果连接字段有null值,则相应的行不被
包含到结果集合,如果使用外联,发现只多了许多包含Null值的行,请教我
该如何办?
 
Left Join /Right Join
 
left join
right join
 
因有规定,使用连接查询时,相同的列是不会多次显示的,包括NULL值,
在选择时,加是NOT IS NULL 。
 
用左联接和右联接好了!
 
有两个表:
aaa:
a b
1 null
2 11
3 null
bbb:
a b c
1 null null
2 11 null
3 null null
2 11 cc
4 43 null
我想要得到的结果从bbb表中:
1 null null
2 11 null
3 null null
2 11 cc

可是我使用内连接得到的:
SELECT bbb.* INTO ccc
FROM bbb inner JOIN aaa ON ([bbb].[a]=[aaa].[a]) AND ([bbb].=[aaa].);
2 11 null
2 11 cc
左外连接:
SELECT bbb.* INTO ccc
FROM bbb LEFT JOIN aaa ON ([bbb].=[aaa].) AND ([bbb].[a]=[aaa].[a]);
1 null null
2 11 null
3 null null
2 11 cc
4 43 null
右外连接:
SELECT bbb.* INTO ccc
FROM bbb right JOIN aaa ON ([bbb].=[aaa].) AND ([bbb].[a]=[aaa].[a]);
a b c
null null null
2 11 cc
2 11 null
null null null

都不能得到想要的结果.
 
根据你的要求,不妨这么写
select * into ccc from bbb where a not in (select a from aaa group by a)
 
不知字段的类型是什么,若为是整型则执行1),若为字符型执行2)
1)select bbb.* into ccc
from aaa,bbb
where
(IsNull(convert(varchar(10),[bbb].),'Null')=IsNull(convert(varchar(10),[aaa].),'Null'))
AND ([bbb].[a]=[aaa].[a])
2)select bbb.* into ccc
from aaa,bbb
where
(IsNull([bbb].,'Null')=IsNull([aaa].,'Null'))
AND ([bbb].[a]=[aaa].[a])
 
多人接受答案了。
 
后退
顶部