책 내용 질문하기
2권 93페이지 2번
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
93
조회수
47
작성일
2018-09-26
작성자
탈퇴*원

2번의 답이

Select distinct name

From shop

Where id in (

Select shopid from staff where id = 10);

인데 하위 질위 select 에 shopid 말고 id 를 쓰면 안되는건가요?

하위질위 where 에는 그냥 id 인데 select에만 shpoid를 쓰는지 모르겠습니다

Staff테이블의 id가 10인 자료의 shopid와 shop의 id가 같은 자료를 대상으로 한다는 건데

그럼 staff 테이블의 id는 정확히 무엇을 가리키는지 모르겠어요

지금 두 테이블이 1:n 관계라서 shop 의 id가 staff의 외래키이면서 기본키로

지정된 것 같은데 헷갈립니다 ㅠㅠ

답변
2018-09-28 10:17:18

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

먼저 해당 테이블을 정확히 정의하겠습니다.

테이블에서 'id'는 기본키, shopid는 테이블의 'id'를 참조하는 외래키에 해당합니다.

테이블에서 'id'는 기본키에 해당합니다.

( 테이블의 'id'는 기본키이며, 테이블의 'shopid'로 참조되고 있을뿐 외래키는 아닙니다.)

문제에서는 "직원 'id'가 10인 직원이 담당하는 상점의 이름(name)"이라고 했습니다.

상점의 이름을 구하는 것은

select distinct name

from shop

직원 id가 10인 직원이 담당하는 상점의 id는

select shopid

from staff

where id=10

shopid가 사용되는 이유는 테이블에서 바로 상점이름을 검색할 수 없기 때문에, 외래키 shopid가 참조하는 테이블의 id를 하위질의를 통해 조회하여 구하기 위함입니다. 테이블에서 shopid를 구해 테이블에서 id로 조회하면 name을 구할 수 있기 때문이죠.

각 테이블의 id속성이 혼동되면 아래의 설명을 유념해 두고 다시 한 번 풀어보세요.

테이블의 id는 직원id

테이블의 shopid는 각 직원이 담당하는 상점id

테이블의 id는 상점id

행복한 하루되세요.^^

  • *
    2018-09-28 10:17:18

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

    먼저 해당 테이블을 정확히 정의하겠습니다.

    테이블에서 'id'는 기본키, shopid는 테이블의 'id'를 참조하는 외래키에 해당합니다.

    테이블에서 'id'는 기본키에 해당합니다.

    ( 테이블의 'id'는 기본키이며, 테이블의 'shopid'로 참조되고 있을뿐 외래키는 아닙니다.)

    문제에서는 "직원 'id'가 10인 직원이 담당하는 상점의 이름(name)"이라고 했습니다.

    상점의 이름을 구하는 것은

    select distinct name

    from shop

    직원 id가 10인 직원이 담당하는 상점의 id는

    select shopid

    from staff

    where id=10

    shopid가 사용되는 이유는 테이블에서 바로 상점이름을 검색할 수 없기 때문에, 외래키 shopid가 참조하는 테이블의 id를 하위질의를 통해 조회하여 구하기 위함입니다. 테이블에서 shopid를 구해 테이블에서 id로 조회하면 name을 구할 수 있기 때문이죠.

    각 테이블의 id속성이 혼동되면 아래의 설명을 유념해 두고 다시 한 번 풀어보세요.

    테이블의 id는 직원id

    테이블의 shopid는 각 직원이 담당하는 상점id

    테이블의 id는 상점id

    행복한 하루되세요.^^

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