2009-07-29 12 views
2

J'ai une table de données, qui ressemble à ceci:requête SQL Pour supprimer les lignes

ID  CODE 

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

Lorsque j'effectue une requête sur cette table, je veux essentiellement à écarter toutes les lignes qui contiennent le même ID si un le mauvais code est trouvé. Donc, dans l'exemple ci-dessus, rien ne sera retourné avec un ID de 1 car un mauvais code a été trouvé dans l'une des lignes.

Désolé, cela n'a pas été expliqué de la manière la plus éloquente. Des idées?

Répondre

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' 
     ) 
Questions connexes