책 내용 질문하기
하위질의 질문입니다!
도서
2020 시나공 정보처리기사 실기 [기본서]
페이지
0
조회수
220
작성일
2020-10-13
작성자
탈퇴*원
첨부파일

하위질의에서 where문을 쓸때 어떤 답안은 where 00 = (~) 이런식으로 쓰는것도 있고, 어떤 답안은 where 00 in (~) 이런식으로 쓰는것도 있던데요

=이나 in의 차이점이 무엇인가요?

답변
2020-10-14 09:47:08

안녕하세요 길벗수험서 운영팀입니다.

 

하위질의의 결과가 하나일 때는 =와 in 중 어떤 것을 사용하셔도 무관합니다.

 

다만, 2개 이상의 결과가 하위질의에서 나오는 경우 반드시 in을 사용해주어야 합니다.

 

행복한 하루되세요 :)

 

 

  • 관리자
    2020-10-14 09:47:08

    안녕하세요 길벗수험서 운영팀입니다.

     

    하위질의의 결과가 하나일 때는 =와 in 중 어떤 것을 사용하셔도 무관합니다.

     

    다만, 2개 이상의 결과가 하위질의에서 나오는 경우 반드시 in을 사용해주어야 합니다.

     

    행복한 하루되세요 :)

     

     

  • 관리자
    2020-10-14 11:36:49

    안녕하세요 길벗수험서 운영팀입니다.

     

    <경기>테이블에서 '순위'가 3이하인 선수들의 '코드'를 받아 <선수> 테이블에서 해당 선수들의 튜플을 조회하는 SQL 코드를 만들어보죠. (각 순위 당 한명의 선수만 있다고 가정합니다.)

     

    select * from 선수 where 코드 in (select 코드 from 경기 where 순위 <=3);

    이정도가 되겠네요.

     

    이 경우 하위 질의인 'select 코드 from 경기 where 순위 <=3'로 출력되는 결과가 3개라고 추측할 수 있습니다.

    이때에 상위 질의의 where문에 들어가야 하는 것은

    where 코드 in 이지

    where 코드 = 가 들어가게 되면 오류가 발생합니다.

     

    where 코드 = 는 하위질의의 결과가 하나일 때만 사용이 가능하기 때문이죠. 

    즉, 하위 질의인 'select 코드 from 경기~'로 나오는 값이 단 하나일 때만 사용이 가능하다는 것이므로 만약 문제가 "'순위'가 1위인 선수"라고 수정된다면 이렇게 쓸 수 있습니다.

     

    select * from 선수 where 코드 = (select 코드 from 경기 where 순위 = 1); 

     

    행복한 하루되세요 :)

  • *
    2020-10-14 10:32:11

    2개이상의 결과가 나온다는것이 어떤것인지 설명해주실 수 있으신가요? 이해가 잘 안되어서요

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.