2013-05-14 154 views
0

我剛開始在SQL中編程,我遇到了一些問題(n.b.,我正在使用來自遊戲的tabl)。我的表是這樣的,其中ID是指一個人,H到播放某種小時,如果在一定的條件:SQL:如何根據條件選擇ID?

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四小時。在每個小時內,他們可能會或可能沒有執行任何操作。如果他們這樣做,IF列中會出現1。

現在,我的疑問是:我如何查詢,以便我只有一個沒有執行操作的人的ID的表?我不想排除只有IF = 1的行,我想排除具有該ID的所有行。在這種情況下,它應該變成:

01 1 0 
01 2 0 
01 3 0 

任何幫助?

回答

5

這應該這樣做。

select * 
from table 
where Id not in (select Id from table where IF = 1) 
+0

我收到的錯誤,如果我試圖執行查詢「關鍵詞‘TABLE’附近有語法錯誤」。 – 2013-05-14 15:47:54

+0

對不起,我是個白癡。它完美的工作! :) – 2013-05-14 15:52:45

2
SELECT ID FROM Table GROUP BY ID HAVING SUM(IF)=0 
+0

此查詢不輸出提問者想要的內容。根據樣本結果,他想要一個ID,H和IF表。 – 2013-05-14 15:38:00

+0

從這個問題:'我如何查詢,以便我只有一個只有未執行操作的人員ID的表格。因此,我認爲這是解釋。這只是另一種做法。它也可以用另一個查詢來包裝所有三個字段。 – 2013-05-14 15:44:37