마농님) 답글 달아주셨던 것 연관된 질문입니다ㅜ.. 0 2 805

by DB_SQL [Oracle 기초] [2020.11.05 20:56:53]


나라.png (20,479Bytes)

마농님께서 답변 달아주신 것에 대해 조금 더 여쭙고자 이렇게 질문을 드립니다...

SELECT *

  FROM table_name a

 WHERE NOT EXISTS

       (SELECT 1

         FROM table_name

        WHERE population > 2500000

          AND continent = a.continent

        )

;

아래 테이블을 예로 들자면,,,,,, 

메인테이블(위에서는 테이블 a) 의 아프가니스탄부터 시작해서 한 나라, 한 나라에 대해 서브쿼리가 동작하는 것으로 이해했습니다.

아프가니스탄이 속한 대륙(아시아)의 나라를 쫙 검사하고, 그 다음 로우(알바니아) - 유럽 대륙에 속한 나라을 쫙 검사하고, 그 다음에 또 Andorra 검사할 때는 유럽에 속한 나라를 쫙 검사하는 것인가요???

쌩 초보라 이렇게 여쭤봅니다..ㅜㅜ

by 마농 [2020.11.05 23:30:23]

네. 말씀신 대로. 한나라씩. 동일지역 쫙 검사합니다.
다만, 검사 도중 조건을 만족하는 자료가 검출되면 검사를 중단하고 다음 나라로 넘어갑니다.
Exists 쿼리의 장점.
조건을 만족하는 자료 검출시
- Exists 의 경우 해당 나라는 출력 대상으로 선정
- NOT Exists 의 경우 해당 나라는 출력 대상에서 제외


by DB_SQL [2020.11.06 09:12:37]

답변해주셔서 감사합니다^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입