2010-05-10 9 views
6

나는 쿼리를 작성하는 데 어려움을 겪고 있으며 가능한지조차 모른다. 이 테이블을 예로 들면 다음과 같습니다.MySQL 쿼리 : 특정 값이없는 행을 선택하는 방법?

id group active 

1 A  NO 
2 A  YES 
3 A  NO 

4 B  YES 
5 B  NO 

6 C  NO 
7 C  NO 

위의 표는 그 예입니다. 실제 테이블에는 더 많은 열이있어 트리에 그렇게 염두에 두었습니다. 내가 필요한 것은 활성 행이없는 그룹 이름 만 선택하는 방법입니다. 이 경우 "A"그룹과 "B"그룹 모두 "active"= "YES"인 행이 하나 이상 있지만 C를 보면 활성 행이 없습니다. 결과적으로 전체 행이 아닌 그룹 열 값 (이 경우 "C") 만 필요합니다.

이것이 가능합니까?

답변

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

괜찮 았습니다. 고맙습니다. – Srka

1

은 먼저 당신이 목록에없는 다른 모든 그룹을 반환 NOT IN 절을 사용 후 제외하고,하고자하는 모든 그룹을 싶어.

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

이것은 danben이 게시 한 것과 거의 비슷하므로 잘 작동한다고 가정합니다. – Srka

관련 문제