当我不应该得到0结果

时间:2012-10-30 18:55:04

标签: sql-server-2008

我正在运行此查询

select * 
from PortalUser 
where ID not in (select distinct PortalUserID from LoginHistory where LoginDateTime > '10/1/2012')

获得0结果。

如果我跑

select distinct PortalUserID 
from LoginHistory 
where LoginDateTime > '10/1/2012'

我得到了预期的结果集。让我们说50结果

如果我跑

select * 
from portalUser

我得到200个结果。

为什么会这样?

要清楚。 LoginHistory表的PortalUserID不必是唯一的,但PortalUser..ID是一个唯一的字段。

运行此查询

select count(ID) 
from PortalUser 
GO
select count(Distinct PortalUserID) 
from LoginHistory where LoginDateTime > '10/1/2012''

返回119行和47行

1 个答案:

答案 0 :(得分:0)

您的查询仅在子查询返回的ID列表中选择PortalUserID NOT 。 PortalUser中是否有记录没有从您的子查询返回的ID。