책 내용 질문하기
온라인 채점 결과 문의
도서
2026 시나공 컴퓨터활용능력 1급 실기 총정리
페이지
0,480
조회수
46
작성일
2026-08-13
작성자
박*원
첨부파일

2026_최종모의고사_02회

-1. 인기과목처리 쿼리 0/7

-쿼리 비교 X [인기과목처리] 쿼리 (UPDATE 과목 INNER JOIN 과외내역 ON 과목.과목ID = 과외내역.과목ID SET 과목.비고 = "인기과목" WHERE (((과목.과목ID) In (select 과목ID from 과외내역 group by 과목ID having sum(계약수업일수)>=700))); )이 정답(UPDATE 과목 SET 과목.비고 = "인기과목" WHERE (((과목.과목ID) In (select 과목ID from 과외내역 group by 과목ID having sum(계약수업일수) >= 700))); )과 다릅니다.


문제에서는 과목, 과외내역 테이블을 사용하라고 했는데 왜 문제집의 정답에서는 과목만 사용했나요?

답변
2026-08-13 19:24:37

안녕하세요.

문제에서 과목, 과외내역 테이블을 사용한다는 것은 반드시 두 테이블을 바깥쪽 쿼리에 모두 추가하라는 뜻은 아닙니다.

정답은 이렇게 처리한 것입니다.

바깥쪽 업데이트 대상 → 과목 테이블
하위 쿼리 → 과외내역 테이블

즉, 과외내역 테이블은 이미

select 과목ID
from 과외내역
group by 과목ID
having sum(계약수업일수)>=700

이라는 하위 쿼리에서 사용되고 있습니다.

반면 작성하신 쿼리는 바깥쪽에도 과외내역을 INNER JOIN으로 추가했습니다. 그런데 인기과목 여부는 이미 In (하위 쿼리)에서 판정하므로 바깥쪽 JOIN은 불필요합니다.

핵심은:

업데이트할 테이블은 과목 하나
조건 판정에 필요한 과외내역은 하위 쿼리에서 사용

따라서 문제의 “과목, 과외내역 테이블을 사용” 조건도 충족하면서, 정답처럼 바깥쪽에는 과목만 두는 것이 맞습니다.

즐거운 하루 되세요.

  • 관리자
    2026-08-13 19:24:37

    안녕하세요.

    문제에서 과목, 과외내역 테이블을 사용한다는 것은 반드시 두 테이블을 바깥쪽 쿼리에 모두 추가하라는 뜻은 아닙니다.

    정답은 이렇게 처리한 것입니다.

    바깥쪽 업데이트 대상 → 과목 테이블
    하위 쿼리 → 과외내역 테이블
    

    즉, 과외내역 테이블은 이미

    select 과목ID
    from 과외내역
    group by 과목ID
    having sum(계약수업일수)>=700
    

    이라는 하위 쿼리에서 사용되고 있습니다.

    반면 작성하신 쿼리는 바깥쪽에도 과외내역을 INNER JOIN으로 추가했습니다. 그런데 인기과목 여부는 이미 In (하위 쿼리)에서 판정하므로 바깥쪽 JOIN은 불필요합니다.

    핵심은:

    업데이트할 테이블은 과목 하나
    조건 판정에 필요한 과외내역은 하위 쿼리에서 사용

    따라서 문제의 “과목, 과외내역 테이블을 사용” 조건도 충족하면서, 정답처럼 바깥쪽에는 과목만 두는 것이 맞습니다.

    즐거운 하루 되세요.

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