복붙노트

[SQL] SQL : 어떻게 당신이 특정 값을 포함하지 않는 경우에만 그룹을 선택합니까?

SQL

SQL : 어떻게 당신이 특정 값을 포함하지 않는 경우에만 그룹을 선택합니까?

나는 테이블을 가지고 말 :

Restaurant locations: 

RESTAURANT_NO | RESTAURANT_LOCATION
-----------------------------------
1             |            City A
1             |            City B
2             |            City A
2             |            City B
2             |            City C
3             |            City C
4             |            City A
4             |            City B

어떻게 함께 그룹화 할 수있을 것이며, 또한 단지를 선택 RESTAURANT_NO 도시 C의 위치를하지 않아도?

이 예제를 사용하여, 나는 돌아가려면 :

 RESTAURANT_NO
 -------------
 1
 4

RESTAURANT_NO 2, 3 년 이후 두 도시 C.에서 위치가

또한이 요구 사항을 충족 그룹을 선택 만하는 동안 어떻게 그룹 RESTAURANT_NO에 함께 모르겠어요.

편집 : 나는이 작업을 얻었다.

그러나, 나는 여전히 알아낼 수 없었던 것을 마지막으로 한 가지가있다. 다음 표는 자신들이 일한 도시와 함께 사람들의 ID 번호가 있습니다 :

PERSON_NO | CITY_NAME
---------------------
1         |    City A
2         |    City B
3         |    City A
3         |    City B
3         |    City C
4         |    City A
4         |    City B
4         |    City C

나는 사람들 모두의 PERSON_NO을 얻을 수있을 것입니다 방법 누가 세 도시, A, B 및 C에 살고있다?

나는 돌아가려면

PERSON_NO
---------
3
4

감사합니다, 다시. 나는 SQL과 그렇게 많이 경험하지 않은 아니에요 확신 무엇을 할 수 있습니다.

해결법

  1. ==============================

    1.일방 통행:

    일방 통행:

    SELECT RESTAURANT_NO FROM restaurant WHERE RESTAURANT_NO NOT IN
    (SELECT RESTAURANT_NO FROM restaurant WHERE RESTAURANT_LOCATION = 'City C')
    
  2. ==============================

    2.

    SELECT DISTINCT
          Restaurant_no
    FROM 
          TableX t
    WHERE 
          NOT EXISTS
          ( SELECT *
            FROM TableX c
            WHERE c.Restaurant_no = t.Restaurant_no
              AND c.Restaurant_location = 'City C'
          )
    
  3. ==============================

    3.DISTINCT 사용합니다.

    DISTINCT 사용합니다.

    이 시도:

    SELECT DISTINCT t.Restaurant_No
    FROM Restaurant t
    WHERE t.Restaurant_No NOT IN
           (SELECT s.Restaurant_No  
            FROM  Restaurant s
            WHERE s.RESTAURANT_LOCATION = 'City C')
    ORDER BY t.Restaurant_No
    
  4. from https://stackoverflow.com/questions/9355241/sql-how-do-you-select-only-groups-that-do-not-contain-a-certain-value by cc-by-sa and MIT license