분류 sql

SELECT query 에서 IN 연산자 사용

컨텐츠 정보

  • 조회 2,257 (작성일 )

본문

SELECT query 에서 IN 연산자 사용한 예를 살펴봅니다.

  

mysql> SELECT Name, Category, InStock

    -> FROM Topic

    -> WHERE Category IN ('Blues', 'Jazz')

    -> ORDER BY Name; 

위에서 보면 IN연산자는 Where안에서 사용되는 것을 볼 수 있습니다. 조건에 더 강력한 무기가 되는겁니다. 칼럼에서 IN 안에 주어진 값만 조건으로 지정하게 됩니다.

 

IN의 값으로 하부 SELECT Query가 올 수 있습니다.

mysql> SELECT BookTitle, Copyright

    -> FROM Books

    -> WHERE Copyright IN

    ->    (

    ->       SELECT b.copyright

    ->       FROM Books AS b JOIN AuthorBook AS ab USING (BookID)

    ->          JOIN Authors AS a USING (AuthID)

    ->       WHERE AuthLN='MySQL'

    ->    )

    -> ORDER BY BookTitle; 

 

NOT IN을 사용할 수도 있습니다.

mysql> SELECT BookTitle, Copyright

    -> FROM Books

    -> WHERE Copyright NOT IN

    ->    (

    ->       SELECT b.copyright

    ->       FROM Books AS b JOIN AuthorBook AS ab USING (BookID)

    ->          JOIN Authors AS a USING (AuthID)

    ->       WHERE AuthLN='MySQL'

    ->    )

    -> ORDER BY BookTitle; 

 

NOT IN 은 <> ALL 로 표현할 수 있습니다.

mysql> SELECT id FROM employee WHERE id NOT IN (SELECT id FROM job); 

또는

mysql> SELECT id FROM employee WHERE id <> ALL (SELECT id FROM job);

 

 

sql