0

我刚开始用 SQL 编程,但遇到了一些问题(注意,我正在处理来自游戏的表格)。我的表是这样的,其中 ID 指的是一个人,H 指的是某个小时的游戏时间,IF 指的是某个条件:

ID  H  IF

01  1  0
01  2  0
01  3  0
02  1  0
02  2  1
03  1  0
03  2  1
03  3  0
03  4  1

在这种情况下,玩家 01 玩了三个小时,玩家 02 玩了两个小时,玩家 03 玩了四个小时。在这些时间的每一个小时中,他们可能会或可能不会执行一项操作。如果他们这样做了,则 1 将出现在 IF 列中。

现在,我的疑问是:如何查询,以便我有一个只有从未执行过该操作的人的 ID 的表?我不想只排除 IF = 1 的行,我想排除所有具有该 ID 的行。在这种情况下,它应该变成:

01  1  0
01  2  0
01  3  0

有什么帮助吗?

4

2 回答 2

5

这应该这样做。

select *
from table
where Id not in (select Id from table where IF = 1)
于 2013-05-14T15:32:52.163 回答
2
SELECT ID FROM Table GROUP BY ID HAVING SUM(IF)=0
于 2013-05-14T15:33:10.650 回答