2010-05-10 23 views
6

Mam problem z napisaniem zapytania i nie wiem nawet, czy jest to możliwe. Weź tę tabelę na przykład:Zapytanie MySQL: Jak wybierać wiersze, które nie mają określonej wartości?

id group active 

1 A  NO 
2 A  YES 
3 A  NO 

4 B  YES 
5 B  NO 

6 C  NO 
7 C  NO 

Powyższa tabela jest tylko przykładem. W prawdziwym stole jest o wiele więcej kolumn, które drzewo ma na myśli. Potrzebuję sposobu, aby wybrać tylko nazwy grup, które nie mają żadnego aktywnego wiersza. W tym przypadku obie grupy "A" i "B" mają co najmniej jeden wiersz z "aktywnym" = "TAK", ale jeśli spojrzysz na C, nie ma aktywnych wierszy. Jedyne, czego potrzebowałbym w rezultacie, to wartość kolumny grupy (w tym przypadku "C"), a nie cały wiersz.

Czy to możliwe?

Odpowiedz

7
SELECT DISTINCT group FROM table WHERE group NOT IN 
    (SELECT DISTINCT group FROM table WHERE active = 'YES') 
+0

To zadziałało dobrze. Dziękuję Ci. – Srka

1

najpierw chcą, aby wszystkie grupy, które chcesz wykluczyć, a następnie użyć klauzuli NOT IN do powrotu nie wszystkie inne grupy w tym wykazie.

SELECT DISTINCT t.group 
FROM table t 
WHERE t.group NOT IN 
    (SELECT DISTINCT t.group 
    FROM table t 
    WHERE t.active='YES'); 
+0

To jest prawie jak ten danben opublikowany, więc przypuszczam, że to też zadziała. – Srka

Powiązane problemy