NOT IN , left outer join 丢失数据!!

baola 2004-03-24 08:29:38
1.SELECT count(c.org_nummer) FROM customers c
LEFT OUTER JOIN company b ON c.org_nummer=b.org_nummer
WHERE (c.orgtype='A1' OR c.orgtype='A2' OR
c.orgtype='A0')
AND c.AVSLUTT < 1 得到总和结果为:302 177

2.SELECT count(c.org_nummer) FROM customers c
LEFT OUTER JOIN company b ON c.org_nummer=b.org_nummer
WHERE (c.orgtype='A1' OR c.orgtype='A2' OR
c.orgtype='A0') AND bc.bransjeID IN
(75121,75122,55523,80423,85321,80100,80210,80220,80302,80303,80309,80301
,80304,1125,80426,1122,92721,2014,80410,60220,50500,52260,51310,52112,85
313,85140,85120,80423,85321,80210,80220) AND c.AVSLUTT < 1 .
结果为:10 993
3.SELECT count(c.org_nummer) FROM customers c
LEFT OUTER JOIN company b ON c.org_nummer=b.org_nummer
WHERE (c.orgtype='A1' OR c.orgtype='A2' OR
c.orgtype='A0') AND bc.bransjeID NOT IN
(75121,75122,55523,80423,85321,80100,80210,80220,80302,80303,80309,80301
,80304,1125,80426,1122,92721,2014,80410,60220,50500,52260,51310,52112,85
313,85140,85120,80423,85321,80210,80220) AND c.AVSLUTT < 1 .
结果为:203 784 。
按照not in 和in 的理解,应该第2句和第3句的和等于等一个,但是 2+3=214 784 。丢出了数据,大家帮着分析一下,问题出在了哪里?

...全文
88 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
baola 2004-03-24
  • 打赏
  • 举报
回复
Ok.谢谢!是因为有null的问题!!
capcom 2004-03-24
  • 打赏
  • 举报
回复
举个例子:
declare @a table(a int,b int)
declare @b table(a int,b int)
insert @a values(1,1)
insert @a values(2,2)
insert @a values(3,3)
insert @a values(4,4)
insert @b values(1,1)
insert @b values(3,3)
insert @b values(5,5)
insert @b values(7,7)

select count(a.a) from @a a left join @b b on a.a=b.a
select * from @a a left join @b b on a.a=b.a
select count(a.a) from @a a left join @b b on a.a=b.a where b.b in (1,3)
select count(a.a) from @a a left join @b b on a.a=b.a where b.b not in (1,3)
pbsql 2004-03-24
  • 打赏
  • 举报
回复
不一定是NULL
realgz 2004-03-24
  • 打赏
  • 举报
回复
同意1、2、3、4、5、6、7。。。。
zheninchangjiang 2004-03-24
  • 打赏
  • 举报
回复
用set ansi_nulls on/off来设置一下再看看是否会有不同
zjcxc 元老 2004-03-24
  • 打赏
  • 举报
回复
应该是NULL值的影响,你检查一下你的表中,在on/in/where涉及的字段中是否有NULL值.
pbsql 2004-03-24
  • 打赏
  • 举报
回复
你的理解错误
capcom 2004-03-24
  • 打赏
  • 举报
回复
那可不一定哦!

你的表里面有NULL值啊!

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧