제2과목 90페이지에서 문제2번과 3번에 대해서 질문드립니다.
문제2번에서는 where id in(select shopid)로 갔는데
문제3번에서는 where pid in(select id)로 갔는데 무엇을 보고 어디서 들어가고 어디서 나왔는지를 판단하는건가요??
저는 2번과 3번모두 N에서 1로 가는거라고 생각을해서 풀었는데 3번은 맞고 2번은 틀리더라구요
어디서 들어가서 어디로 나오는지를 어떻게 판단하는지 알려주세요 ㅠㅠ
안녕하세요.
최종적으로 추출하는 속성이 있는 테이블이 기본 테이블이 됩니다.
[문제2]
최종 출력하는 속성은 상점의 이름(name)입니다.
조건은 직원 'id'가 10인 직원입니다.
조건을 적용할 직원의 id는 Staff 테이블에 있습니다.
shop 테이블의 id는 staff shopid와 연결된 것으로 보아 직원 id가 아닌 shop id임을 알 수 있습니다.
그러므로 조건을 적용할 하위 질의로 staff 테이블의 직원 id에서 10인 직원을 먼저 추출한 후
그 추출된 값을 이용해 shop 테이블의 name을 추출합니다.
그러므로
SELECT DISTINCT name
FROM Shop
WHERE id IN (
SELECT shopid
FROM Staff
WHERE id = 10);
과 같이 기술됩니다.
[문제3]
최종 출력하는 속성은 상품의 판매량(psale) 합계입니다.
조건은 상품명(name)이 "USB"로 시작하는 상품입니다.
조건에 적용할 상품명(name)은 product 테이블에 있습니다.
그러므로 product 테이블의 name에서 "USB"로 시작하는 상품을 먼저 추출한 후
그 추출된 값을 이용해 sale 테이블의 psale의 합계를 추출합니다.
그러므로
SELECT SUM(psale)
FROM Sale
WHERE pid IN (
SELECT id
FROM Product
WHERE name LIKE ‘USB%’);
와 같이 기술됩니다.
오늘도 즐거운 하루 되세요.
-
*2017-06-22 09:20:56
안녕하세요.
최종적으로 추출하는 속성이 있는 테이블이 기본 테이블이 됩니다.
[문제2]
최종 출력하는 속성은 상점의 이름(name)입니다.
조건은 직원 'id'가 10인 직원입니다.
조건을 적용할 직원의 id는 Staff 테이블에 있습니다.
shop 테이블의 id는 staff shopid와 연결된 것으로 보아 직원 id가 아닌 shop id임을 알 수 있습니다.
그러므로 조건을 적용할 하위 질의로 staff 테이블의 직원 id에서 10인 직원을 먼저 추출한 후
그 추출된 값을 이용해 shop 테이블의 name을 추출합니다.
그러므로
SELECT DISTINCT name
FROM Shop
WHERE id IN (
SELECT shopid
FROM Staff
WHERE id = 10);과 같이 기술됩니다.
[문제3]
최종 출력하는 속성은 상품의 판매량(psale) 합계입니다.
조건은 상품명(name)이 "USB"로 시작하는 상품입니다.
조건에 적용할 상품명(name)은 product 테이블에 있습니다.
그러므로 product 테이블의 name에서 "USB"로 시작하는 상품을 먼저 추출한 후
그 추출된 값을 이용해 sale 테이블의 psale의 합계를 추출합니다.
그러므로
SELECT SUM(psale)
FROM Sale
WHERE pid IN (
SELECT id
FROM Product
WHERE name LIKE ‘USB%’);와 같이 기술됩니다.
오늘도 즐거운 하루 되세요.