2009-07-29 126 views
2

我有一個表的數據,看起來像這樣:SQL查詢來排除行

ID  CODE 

1  FOO 
1  FOO2 
1  FOO3 
1  BADCODE 
2  FOO 
2  FOO2 

當我執行此表上我基本上是要打折了包含相同ID,如果所有行的查詢發現錯誤的代碼。所以在上面的例子中,由於在其中一行中發現了一個錯誤代碼,所以沒有ID爲1的內容將被返回。

對不起,如果沒有以最雄辯的方式解釋。有任何想法嗎?

回答

3

SELECT * FROM mytable WHERE id NOT IN (SELECT id FROM mytable WHERE code = 'BADCODE')

3
SELECT * 
FROM mytable mo 
WHERE NOT EXISTS 
     (
     SELECT NULL 
     FROM mytable mi 
     WHERE mi.id = mo.id 
       AND mi.code = 'BADCODE' 
     )