0

このクエリを実行しています

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行を返します

4

1 に答える 1

0

あなたのクエリは、サブクエリによって返されたリストでID NOTを選択しているだけです。PortalUserIDサブクエリから返された ID を持たない PortalUser のレコードがありますか。

于 2012-10-30T18:59:39.787 に答える