这个问题是这个问题的延续
然而,数据库结构略有变化(因为我稍微简化了一点)
我有一个数据列如下的数据库:
Key, Instance, User ID, Day, Size, Instance Type
键- 这是主键。
实例- 这是特定实例的描述符(这将是唯一的)。
用户 ID - 这将是指用户数量中的 1 个,其数量将少于此表中的条目数。
Day - 这是特定用户创建此实例的日期。它将是第 1 天或第 2 天之一。
大小- 这是存储数据的大小。
实例类型- 有几种实例类型 实例本身将是这些实例类型之一。
现在,在我之前的问题中,我正在构建一个嵌套 SQL 查询来查找在第 1 天和第 2 天拥有实例的不同用户,在这种情况下具有特定的实例类型。
现在我有两组这样的查询。
我现在想做的是第三个查询并返回用户 ID在其他任何一个查询中都不存在的数据库。
到目前为止,我已经设置了一个查询,但它真的很慢(与On语句中的 <> 比较器有关)而且我什至不能 100% 确定它是否完全符合我的要求。
到目前为止,这是我的 SQL 语句:
Select Max( Table.Key ) as Key,
Max( Table.Instance ) as Instance,
Table.[User ID],
Max( Table.Day ) as Day,
Max( Table.Size ) as Size,
Max( Table.[Instance Type] ) as [Instance Type]
from (((Table
inner join (Select top 90 Max( Table.Key ) as Key,
Max( Table.Instance ) as Instance,
Table.[User ID],
Max( Table.Day ) as Day,
Max( Table.Size ) as Size,
Max( Table.[Instance Type] ) as [Instance Type]
from Table
where Table.[Instance Type]="type1" and
Table.[Day]=1 and
1=1
group by Table.[User ID]) as t2
on Table.[User ID]<>t2.[User ID])
inner join (Select top 90 Max( Table.Key ) as Key,
Max( Table.Instance ) as Instance,
Table.[User ID],
Max( Table.Day ) as Day,
Max( Table.Size ) as Size,
Max( Table.[Instance Type] ) as [Instance Type]
from Table
where Table.[Instance Type]="type1" and
Table.[Day]=2 and
1=1
group by Table.[User ID]) as t3
on Table.[User ID]<>t3.[User ID])
inner join (Select Table.[User ID]
from Table
where 1=1 ) as t4
on Table.[User ID]=t4.[User ID])
where Table.[Instance Type]="type1"
group by Table.[User ID];
任何有关如何获得我所追求的帮助或建议将不胜感激!